導航:首頁 > 文檔加密 > js實現sha256加密

js實現sha256加密

發布時間:2023-09-19 00:43:23

⑴ 登錄加密

使用sha256加密方式

原理:前端獲取隨機值,進行多次加密後下發給後端比對後端同樣方式加密出來的密碼的結果是否一致。

Sha256加密的出來的數據是不可逆的沒有解密。

import CryptoJS from "crypto-js";//使用crypto-js的moles

//對密碼進行加密

 let encryptedPwd = encodePwd(password, {

            challenge: Challenge,//先獲取的隨機值

            userName:username,

            salt: '',

            iIterate: 20  //加密20次

          }, false);

 //密碼加密

  encodePwd(szPwd, encodeParam, bIrreversible) {

    let encodeKey = '';

      //secretKey is challenge

      encodeKey = this.sha256(szPwd) + challenge;

      for (let i = 1; i < encodeParam.iIterate; i++) {

       encodeKey = this.sha256(encodeKey);

    return encodeKey; //返回加密結果

  }

⑵ hmac-sha256-hex演算法怎麼調用

題主可以考慮使用CryptoJS這個庫,包含很多種加密方式,而且採用了RequireJS,既支持NodeJS服務端也支持普通瀏覽器客戶端。文檔寫的也很詳實。GitHub傳送門:/brix/crypto-js

⑶ 關於騰訊雲簡訊介面的sig欄位,sha256加密問題,nodejs

按照我下面的寫法哈:

constcrypto=require('crypto');
functionsig()
{
varstrMobile="這里是我的手機";//tel的mobile欄位的內容
varstrAppKey="這里是我的key";//sdkappid對應的appkey,需要業務方高度保密
varstrRand="7226249334";//url中的random欄位的值
varstrTime="1457336869";//unix時間戳
varbuf="appkey="+strAppKey+"&random="+strRand+"&time="
+strTime+"&mobile="+strMobile;
varsig=crypto.createHash('sha256').update(buf,'utf-8').digest('hex');
returnsig;
}
console.log(sig());

輸出結果如下:

原因就是文檔裡面強調了編碼要使用 utf-8,而 js 默認編碼不是這個,所以需要強制指定下。

另外這個 sig 的計算結果是和你的輸出參數有關的,並不是不變的。

還有就是你的 mobile 和 appkey 怎麼傳遞的都是中文,官方給的貌似都是數字和字母呃。

⑷ 在C#中的sha256加密和js中的sha256加密

C#自帶的類庫實現sha265會返回一個byte[] 數組

這個數組的長度是32,js的sha265是64,是把每個byte直接轉換成了2個hex字元串。

C#中加密後是44位是因為把這個數組用base64編碼成了字元串。

C#中也直接把byte轉換成對應的hex字元串就和js中一樣了。

另外,把str轉換成byte[]數組的Encoding 如果不同,sha是不同的,一般js的都是utf8.

請參考

publicstaticstringSHA256(stringstr)
{
//如果str有中文,不同Encoding的sha是不同的!!
byte[]SHA256Data=Encoding.UTF8.GetBytes(str);

SHA256ManagedSha256=newSHA256Managed();
byte[]by=Sha256.ComputeHash(SHA256Data);

returnBitConverter.ToString(by).Replace("-","").ToLower();//64
//returnConvert.ToBase64String(by);//44
}

staticvoidMain(string[]args)
{
strings="helloworld";
//sha265=
stringsha=SHA256(s);
Console.WriteLine("{0} {1} Length:{2}",s,sha,sha.Length);
}
閱讀全文

與js實現sha256加密相關的資料

熱點內容
ERp列印伺服器錯誤怎麼弄 瀏覽:111
蚌埠u盤加密軟體有哪些 瀏覽:178
前端如何認證伺服器 瀏覽:554
linux切換db2用戶命令 瀏覽:306
相片如何用電解壓 瀏覽:905
碩士程序員去學校當老師 瀏覽:120
pythonstr提取到字典 瀏覽:818
程序員那麼可愛有人看上陸漓了 瀏覽:876
php正則提取圖片 瀏覽:103
pythonlinuxdjango 瀏覽:562
php中文返回亂碼 瀏覽:89
宿舍裝的電信怎麼加密 瀏覽:745
為什麼壓縮文件解壓後變少了 瀏覽:426
現在安卓充電器普遍是什麼型號 瀏覽:714
9日均線36均線主圖指標源碼 瀏覽:349
程序員阿里文化完整版 瀏覽:98
早間新聞在哪個app上面可以看 瀏覽:954
工作啦app注冊的信息怎麼刪去 瀏覽:378
滾動轉子式製冷壓縮機 瀏覽:873
美國編程用什麼軟體 瀏覽:571