0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

秒驗(yàn) REST API 手機(jī)號(hào)碼置換接口

MobTech科技派 ? 來(lái)源:MobTech科技派 ? 作者:MobTech科技派 ? 2023-08-03 15:07 ? 次閱讀

功能說(shuō)明

  • 提交客戶端獲取到的token、opToken等數(shù)據(jù),驗(yàn)證后返回手機(jī)號(hào)碼

調(diào)用地址

  • POST https://identify-verify.dutils.com/auth/auth/sdkClientFreeLogin

請(qǐng)求頭

  • Content-Type :application/json
  • appkey:xxxxxxxxxx

入?yún)⒄f(shuō)明

字段類型說(shuō)明必傳
appkeyStringapp標(biāo)識(shí)Y
tokenString客戶端的tokenY
opTokenString客戶端返回的運(yùn)營(yíng)商tokenY
operatorString客戶端返回的運(yùn)營(yíng)商,CMCC:中國(guó)移動(dòng)通信, CUCC:中國(guó)聯(lián)通通訊, CTCC:中國(guó)電信Y
signString簽名(MD5(所有參數(shù)使用key的正序,通過(guò)a=b&b=c+appSecret組成))Y
timestamplong當(dāng)前時(shí)間戳(毫秒)Y
md5StringAPK的md5簽名,例:e4caa1a08ba0570b5c1290b1a0bc9252N

加密示例

  • 參數(shù)
"appkey" - > "2f2d7j9wf8a40"
"opToken" - > "f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325"
"operator" - > "CUCC"
"token" - > "0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo="
"timestamp" - > 1655190952281
"appSecret" - > "9abee316611wd9ff607feb9f2c496338"
  • 排序結(jié)果
appkey=2f2d7j9wf8a40&opToken=f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325&operator=CUCC×tamp=1655190952281&token=0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo=
  • 拼接appSecret
appkey=2f2d7j9wf8a40&opToken=f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325&operator=CUCC×tamp=1655190952281&token=0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo=9abee316611wd9ff607feb9f2c496338
  • 計(jì)算MD5結(jié)果
sign - > 3f1991b27b1c86a32e661eabdd3d1f5a

請(qǐng)求示例

curl --location --request POST 'http://identify.verify.mob.com/auth/auth/sdkClientFreeLogin' 
--header 'Content-Type: application/json' 
--data-raw '{"token":"0:AAAAhAAAAIAIJn3PvTUUJ94umGqPmZCFtprF5Pg7uCxb+Opp+JtZrHIX3yxVOGEHJQLHuRLU1hlTbYyxCMfW53fuck6OL1X+01qdf+NpTVj1ApmQzapKWFB3DEPNNdyad8HwxZY/ZGWcch0Njy+Pb0TgqMwAytBWKu5vlvN9LRoWw/6F3K4BGgAAAPDHlbG1uFKewi7J1g3d6tAor/kIHG0A8csscrESYVfmVYzB6RBfQWfwDpZIYLrXOuSFdWP3bqKbEyIiqvSeY3ktxSus2lUdD6MzwYo1aXJ6oALEW/A07Qx5/3S6ClSmtGrHuzDnC6JCsmHEQWR7S2wNLSojS95Zd91AC2gpqV5tmKEaVGDc827JVEHXFX6Zr5d0pNmBHLS0b67BrNfG4v0qSgcf/OL3a1xOQVieqUDbrAPiNF7Q2wifCbj0FQyIt5+LPpOkqKDbYff21WinJMTOuOMoJcqOhrI1gUEmnHE/ZU8ZZXN52Kffd+Pk7aR7MMU=","opToken":"a53c2dc92083cb1375218a0f1dd35e0050bb26e40ba0a1536204920384995379", "appkey": "2f2d7a68f8a40", "operator": "CUCC",  "sign": "576ec00ac6ad80a2d0a92872d748e82b", "timestamp": 1655094782181}'

響應(yīng)示例

請(qǐng)求成功

{
    "error": null,
    "res": "ZfukzNuB5oKbxBKxK9MoYFzr1IDZ0Z/i+xLYyq/JCAmi24DPYHdGeUqxE6OjQuP3VY1c76CyfoU=",
    "seqid": "456484936150429696",
    "status": 200
}

請(qǐng)求失敗

{
    "status": 4119342,
    "res": null,
    "error": "簽名錯(cuò)誤",
    "seqid": "null"
}
  • 響應(yīng)參數(shù)
keydescription
error返回碼描述
res加密后的JSON串,含有返回的手機(jī)號(hào),需進(jìn)行DES解密
seqid流水號(hào),請(qǐng)求出錯(cuò)時(shí)可能為空
status返回碼

數(shù)據(jù)解密

返回體中的res數(shù)據(jù)需要使用appSecet解密

解密方式

DES/CBC/PKCS5Padding

偏移量 00000000

使用base64轉(zhuǎn)碼

字段說(shuō)明

{   
    "isValid":1, 
    "phone": "13888888888",
    "valid":"true"
}
字段類型必傳說(shuō)明
isValidintegerY驗(yàn)證狀態(tài),1:成功, 2:失敗
phonestringY返回手機(jī)號(hào)
validbooleanY驗(yàn)證狀態(tài) true 成功 false:失敗

示例代碼

Java

import java.security.Key;
import java.security.spec.AlgorithmParameterSpec;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;

public class DES {

    public static final String ALGORITHM = "DES";
    public static final String PADDING = "DES/CBC/PKCS5Padding";
    private static final byte[] DEFAULT_INITIALIZATION_VECTOR = ("00000000".getBytes());

    private String padding = PADDING;
    private AlgorithmParameterSpec paramSpec;

    public DES(String padding, byte[] initializationVectorBytes) {
        this.padding = padding;
        this.paramSpec = new IvParameterSpec(initializationVectorBytes);
    }

    public byte[] decodeBytes(byte[] data, byte[] key) throws Exception {
        Key secretKey = getKey(key);
        Cipher cipher = Cipher.getInstance(padding);
        cipher.init(Cipher.DECRYPT_MODE, secretKey, paramSpec);
        return cipher.doFinal(data);

    }

    private static Key getKey(byte[] key) throws Exception {
        DESKeySpec dks = new DESKeySpec(key);
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
        SecretKey secretKey = keyFactory.generateSecret(dks);
        return secretKey;
    }

    public static byte[] decode(byte[] data, byte[] key) throws Exception {
        return decode(data, key, DEFAULT_INITIALIZATION_VECTOR);
    }

    public static byte[] decode(byte[] data, byte[] key, byte[] ivBytes) throws Exception {
        DES des = new DES(PADDING, ivBytes);
        return des.decodeBytes(data, key);
    }

}
import java.util.Base64;

public abstract class Base64Utils {

    public Base64Utils() {
    }

    public static byte[] decode(byte[] src) {
        return src.length == 0 ? src : Base64.getDecoder().decode(src);
    }

}

返回碼

錯(cuò)誤碼說(shuō)明
5119104解密失敗
5119105服務(wù)錯(cuò)誤
4119301數(shù)據(jù)校驗(yàn)失敗
4119302數(shù)據(jù)不存在
5119302數(shù)據(jù)不存在
4119303數(shù)據(jù)已經(jīng)存在
5119303數(shù)據(jù)已經(jīng)存在
4119310token未找到
5119310token未找到
4119311token非法
4119330App沒有初始化
4119331AppSecret錯(cuò)誤
5119341余額不足
5119501未知的運(yùn)營(yíng)商類型
5119511AppKey每分鐘驗(yàn)證次數(shù)超過(guò)限制
5119513未審核的包名每天驗(yàn)證數(shù)量超過(guò)限制
4119521包名沒有配置
5119531AppKey在黑名單中
5119546[免密登錄][APP每分鐘]超限
5119507免密登錄失敗
5119509免密獲取TOKEN失敗
4119342簽名錯(cuò)誤
4119343timestamp錯(cuò)誤
5119601未設(shè)置價(jià)格

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149957
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1461

    瀏覽量

    61490
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1006

    瀏覽量

    45417
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    我想做一個(gè)號(hào)碼攔截器。面對(duì)面5米內(nèi)接收到對(duì)方的手機(jī)號(hào)碼。我也咨詢很多人,不是技

    我想做一個(gè)號(hào)碼攔截器。面對(duì)面5米內(nèi)接收到對(duì)方的手機(jī)號(hào)碼。我也咨詢很多人,不是技術(shù)問(wèn)題就是,怕這東西觸犯法律。我只是正規(guī)用途,并不會(huì)觸犯法律底線!望“能人”解決我的問(wèn)題!樣品只要符合以上條件,重金酬謝...謝謝!QQ896776242加我請(qǐng)注明電子*** 丁先生
    發(fā)表于 04-29 16:16

    基于51單片機(jī)的tc35開發(fā),怎么提取收到短信的手機(jī)號(hào)碼呢?

    基于51單片機(jī)的tc35開發(fā),大家有什么方法可以提取收到短信的手機(jī)號(hào)嗎,或者實(shí)直接回復(fù)短信的方法呢?或者怎么實(shí)現(xiàn)提取指針指向的變量和指針指向的變量的后面的變量呢?就是:在收到的緩存數(shù)組里用strstr函數(shù)找到+861,然后怎么提取+861后免得號(hào)碼呢》?求解跪求,在線等解
    發(fā)表于 08-06 10:13

    【YZ】基于雙核心架構(gòu)識(shí)別手機(jī)號(hào)碼的快遞派送器

    本帖最后由 wangjiamin2014 于 2015-1-6 14:57 編輯 項(xiàng)目名稱: 基于雙核心架構(gòu)識(shí)別手機(jī)號(hào)碼的快遞派送器團(tuán)隊(duì)名稱:YZ團(tuán)隊(duì)成員:鄭斌 紀(jì)興宇作品演示作品介紹目前物流
    發(fā)表于 12-31 14:53

    為什么我修改不了賬號(hào)郵箱和手機(jī)號(hào)碼?

    我想把這個(gè)賬號(hào)的郵箱改了,同時(shí)解綁手機(jī)號(hào),折騰了半天發(fā)現(xiàn)都被鎖死了。
    發(fā)表于 08-02 20:17

    GSM模塊與MINIstm32通信不能顯示出我的手機(jī)號(hào)碼

    GSM 模塊與 MINIstm32通信液晶上不能顯示出我的手機(jī)號(hào)碼。。其他的 幾項(xiàng)都可以顯示出來(lái)。。希望大神幫忙答復(fù)下!??!
    發(fā)表于 04-16 00:13

    別讓“手機(jī)小號(hào)”成違法行為幫兇

    所謂手機(jī)臨時(shí)號(hào),又被稱為手機(jī)“小號(hào)”,就是在不更換手機(jī)卡、不改變?cè)瓉?lái)手機(jī)號(hào)碼的情況下,向通信運(yùn)營(yíng)商或網(wǎng)絡(luò)服務(wù)商申請(qǐng)購(gòu)買一個(gè)新的手機(jī)號(hào)碼,和原
    發(fā)表于 12-08 09:37 ?4340次閱讀

    這些人更值得信任? 5年以上不換手機(jī)號(hào)碼的人

    如今智能手機(jī)跟我們的關(guān)系越加密切,可以說(shuō)幾乎是人手一部手機(jī)、甚至是多部手機(jī)。不過(guò)如果你的身邊肯定有這樣的人,那就是他們自己擁有兩張手機(jī)號(hào)碼卡,而其中也有一部分,是5年以上都不更換
    發(fā)表于 03-18 11:45 ?1260次閱讀

    阿里云通信發(fā)布全新號(hào)碼認(rèn)證服務(wù), 重新定義手機(jī)號(hào)碼認(rèn)證的方式

    走普通驗(yàn)證方式的"尋常路",采用用戶無(wú)感知的驗(yàn)證方式,全程無(wú)需等待,驗(yàn)證結(jié)果知,將用戶的驗(yàn)證流程精簡(jiǎn)為:輸入手機(jī)號(hào)碼 → 驗(yàn)證成功。(圖1)號(hào)碼認(rèn)證服務(wù)注冊(cè)流程:由于注冊(cè)認(rèn)證的步驟被大幅減少,由原來(lái)
    發(fā)表于 12-18 16:20 ?322次閱讀

    中國(guó)移動(dòng)即將開啟eSIM一號(hào)雙終端業(yè)務(wù)試驗(yàn)

    據(jù)官方的介紹,用戶可在自己的手機(jī)號(hào)碼(主號(hào)碼)賬戶和套餐下,添加一個(gè)eSIM輔助智能設(shè)備,使手機(jī)終端與附屬終端共用一個(gè)手機(jī)號(hào)碼(主號(hào)碼),主
    發(fā)表于 01-21 09:09 ?2620次閱讀
    中國(guó)移動(dòng)即將開啟eSIM一號(hào)雙終端業(yè)務(wù)試驗(yàn)

    中國(guó)團(tuán)隊(duì)成功將國(guó)內(nèi)手機(jī)號(hào)碼寫入三款新iPhone的eSIM卡

    昨日,國(guó)內(nèi)“超雪團(tuán)隊(duì)”宣布,其已經(jīng)成功將國(guó)內(nèi)手機(jī)號(hào)碼寫入iPhone XS的eSIM卡當(dāng)中,實(shí)現(xiàn)雙卡雙待。今日,該團(tuán)隊(duì)宣布,已經(jīng)成功將國(guó)內(nèi)手機(jī)號(hào)碼寫入三款新iPhone的eSIM卡,在三大運(yùn)營(yíng)商尚未支持的情況下實(shí)現(xiàn)實(shí)體卡+eSIM卡雙卡雙待。
    的頭像 發(fā)表于 01-21 17:14 ?1w次閱讀

    工信部:取消移動(dòng)電話號(hào)碼歸屬地,將增加電信詐騙風(fēng)險(xiǎn)

    手機(jī)號(hào)碼歸屬地能否取消?據(jù)人民網(wǎng)報(bào)道,近期工業(yè)和信息化部的權(quán)威解答稱,取消手機(jī)號(hào)碼歸屬地,將增大電信詐騙風(fēng)險(xiǎn)。目前暫未出臺(tái)取消手機(jī)號(hào)碼歸屬地相關(guān)政策。
    的頭像 發(fā)表于 10-28 16:15 ?3612次閱讀

    淺談手機(jī)號(hào)碼歸屬地更改的影響

    隨著長(zhǎng)途費(fèi)、漫游費(fèi)的取消,手機(jī)號(hào)歸屬地似乎失去了意義,而且存在諸多不便,尤其是變換工作地、生活地之后,那么能取消手機(jī)號(hào)的歸屬地設(shè)置嗎?或者是否可以允許變更手機(jī)號(hào)歸屬地?最近就有多位網(wǎng)友向工信部反映了這一問(wèn)題,工信部也給出了統(tǒng)一回
    發(fā)表于 03-17 10:24 ?2.5w次閱讀

    網(wǎng)友曝手機(jī)號(hào)碼過(guò)戶竟被要求預(yù)存3.6萬(wàn)元話費(fèi)

    日前網(wǎng)絡(luò)報(bào)道稱,四川宜賓的劉先生最近希望將手機(jī)號(hào)碼過(guò)戶到自己名下,被中國(guó)電信要求預(yù)存3.6萬(wàn)元話費(fèi)才能辦理。
    的頭像 發(fā)表于 02-23 10:10 ?1843次閱讀

    REST API是什么,如何使用REST端口

    API是Application Programming Interface(應(yīng)用程序接口)的縮寫,它是拿來(lái)描述一個(gè)類庫(kù)的特征或是如何去運(yùn)用它。按照目前比較主流的分法,可以分為REST API
    的頭像 發(fā)表于 02-17 18:00 ?9010次閱讀
    <b class='flag-5'>REST</b> <b class='flag-5'>API</b>是什么,如何使用<b class='flag-5'>REST</b>端口

    ChatGPT申請(qǐng)api key 需要國(guó)外手機(jī)號(hào)驗(yàn)證怎么辦?

    key還是需要驗(yàn)證,就是ChatGPT把注冊(cè)需要驗(yàn)證手機(jī)號(hào)的步驟移到了申請(qǐng)api申請(qǐng)需要驗(yàn)證??梢钥闯鲠槍?duì)api是以后的重心發(fā)展方向。 那我想申請(qǐng)ChatGPT api key 沒有
    的頭像 發(fā)表于 11-22 11:39 ?9676次閱讀
    ChatGPT申請(qǐng)<b class='flag-5'>api</b> key 需要國(guó)外<b class='flag-5'>手機(jī)號(hào)</b>驗(yàn)證怎么辦?