通过对各大开源工具的比较,最终选择了crypto-js,因为它的加密方式比较全,基本覆盖能用到的所用加密。

Node.js(安装)
  1. npm install crypto-js
用法
  1. var fs = require("fs");
  2. var SHA512 = require("crypto-js/sha512");
  3. var Base64 = require("crypto-js/enc-base64.js");
  4. //读取二进制文件
  5. var imageBuf = fs.readFileSync("demo.txt");
  6. //将二进制数据转换为base64编码的字符串
  7. var base64Img = new Buffer(imageBuf).toString('base64');
  8. //对字符串进行base64编码
  9. var base64Decoded = Base64.parse(base64Img);
  10. //进行加密
  11. var hashed = SHA512(base64Decoded).toString();
  12. //输出加密后的哈希sha512
  13. console.log(hashed);

然后运行 我们可能看到输出了加密成功后的sha512字符串

浏览器的用法

可以通过下面任意方法进行下载

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>CryptoJS</title>
  6. <script src="rollups/hmac-sha512.js"></script>
  7. <script src="components/enc-base64.js"></script>
  8. </head>
  9. <body>
  10. <input type="file" id="demo" onchange="demo(this)"/>
  11. </body>
  12. <script type="text/javascript">
  13. function demo(obj){
  14. var file = obj.files[0];
  15. var reader = new FileReader();
  16. reader.readAsDataURL(file);
  17. reader.onload = function(e) {
  18. var str = reader.result.split(',')[1];
  19. var urlDecoded = decodeURIComponent(str);
  20. var base64Decoded = CryptoJS.enc.Base64.parse(urlDecoded);
  21. var hashed = CryptoJS.SHA512(base64Decoded).toString();
  22. console.log(hashed);
  23. }
  24. }
  25. </script>
  26. </html>

然后我们在浏览器运行上面代码,选择刚才加密的文件,可以看到控制台输出sha512字符串。

我么也可以借助第三方在线加密工具进行效验,结果一样说明没有问题。

推荐在线加密工具:
http://www.bluestep.cc/demos/tools/endecode/sha512_file_hash.html
https://www.it399.com/FileHash