导航:首页 > 文档加密 > 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加密相关的资料

热点内容
linuxopen返回值 浏览:606
服务器意外断电出现报错怎么办 浏览:689
手机如何当web服务器 浏览:133
票根app的广告怎么关 浏览:654
java队列先进先出 浏览:682
java二进制判断 浏览:1006
java在线解密 浏览:91
android源码编译好 浏览:606
程序员对游戏的影响 浏览:794
最先进编程 浏览:129
单片机触点为什么默认是高电平 浏览:628
华为加密方法编码iso8859 浏览:498
c程序什么符号的内容不参与编译 浏览:522
压缩机三角带什么牌子好 浏览:283
小学数学的算法题 浏览:896
男神程序员 浏览:555
如何查看手机网络服务器 浏览:894
101图集pdf 浏览:901
pdf需求 浏览:483
从哪里找隐藏了的文件夹 浏览:888