您的位置:首页 > 财经 > 金融 > js中怎样对“abc”进行MD5、sha256哈希计算?

js中怎样对“abc”进行MD5、sha256哈希计算?

2024/11/18 4:27:34 来源:https://blog.csdn.net/2301_79698214/article/details/141946962  浏览:    关键词:js中怎样对“abc”进行MD5、sha256哈希计算?

在 JavaScript 中,可以使用 CryptoJS 库来进行 MD5 哈希计算。首先,你需要在 HTML 文件中导入 CryptoJS 库,例如:

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>

然后,在 JavaScript 文件中,可以使用以下代码对字符串 "abc" 进行 MD5 哈希计算:

var hash = CryptoJS.MD5("abc");
var hashString = hash.toString();
console.log(hashString);

运行以上代码后,将在控制台输出 MD5 哈希值。

请注意,CryptoJS 库提供了多种哈希算法,包括 MD5、SHA1、SHA256 等。你可以根据需要选择适合的算法进行哈希计算。

在JavaScript中,可以使用CryptoJS库来计算SHA256哈希值。首先,需要将字符串转换为字节数组,然后使用CryptoJS.SHA256()方法计算哈希值。以下是一个示例代码:

// 导入CryptoJS库
const CryptoJS = require('crypto-js');// 定义要计算哈希值的字符串
const str = "abc";// 将字符串转换为字节数组
const wordArray = CryptoJS.enc.Utf8.parse(str);// 计算SHA256哈希值
const hash = CryptoJS.SHA256(wordArray);// 将哈希值转换为十六进制字符串
const hashStr = hash.toString(CryptoJS.enc.Hex);// 打印SHA256哈希值
console.log(hashStr);

上述代码使用了Node.js的require()函数来导入CryptoJS库。如果在浏览器环境中使用,可以使用script标签导入CryptoJS库。

请注意,以上代码在Node.js环境下运行。如果在浏览器环境中使用,需要导入CryptoJS库的适当版本,并且可能需要进行一些调整。如下:

浏览器中,可以使用crypto.subtle.digest()方法来对字符串进行SHA256哈希计算。

下面是一个简单的示例代码:

async function sha256(input) {const encoder = new TextEncoder();const data = encoder.encode(input);const hashBuffer = await crypto.subtle.digest('SHA-256', data);const hashArray = Array.from(new Uint8Array(hashBuffer));const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join('');return hashHex;
}const str = 'abc';
sha256(str).then(hash => console.log(hash));

这段代码定义了一个sha256函数,它接收一个字符串作为输入,并返回计算出的SHA256哈希值。在函数内部,我们首先使用TextEncoder将字符串编码为字节数组,然后使用crypto.subtle.digest()方法对字节数组进行SHA256哈希计算。最后,将计算出的哈希值转换为十六进制字符串并返回。

通过调用sha256()函数,并将要计算哈希的字符串作为参数传入,就可以得到计算出的SHA256哈希值。

看晕了么?一个问题下面连接了太多的问题。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com