作者:天勤-科技 | 来源:互联网 | 2024-10-13 13:14
使用crypto-js的md5加密-cag2050-博客园https:www.cnblogs.comcag2050p8191301.htmlhttps:github.
使用crypto-js的md5加密 - cag2050 - 博客园 https://www.cnblogs.com/cag2050/p/8191301.html
https://github.com/brix/crypto-js/blob/develop/README.md
crypto-js
Javascript library of crypto standards.
Node.js (Install)
Requirements:
- Node.js
- npm (Node.js package manager)
Usage
ES6 import for typical API call signing use case:
import sha256 from 'crypto-js/sha256'; import hmacSHA512 from 'crypto-js/hmac-sha512'; import Base64 from 'crypto-js/enc-base64'; const message, nonce, path, privateKey; // ... const hashDigest = sha256(nonce + message); const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
Modular include:
var AES = require("crypto-js/aes"); var SHA256 = require("crypto-js/sha256"); ... console.log(SHA256("Message"));
Including all libraries, for access to extra methods:
var CryptoJS = require("crypto-js"); console.log(CryptoJS.HmacSHA1("Message", "Key"));
Client (browser)
Requirements:
- Node.js
- Bower (package manager for frontend)
Usage
Modular include:
require.config({ packages: [ { name: 'crypto-js', location: 'path-to/bower_components/crypto-js', main: 'index' } ] }); require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) { console.log(SHA256("Message")); });
Including all libraries, for access to extra methods:
// Above-mentioned will work or use this simple form require.config({ paths: { 'crypto-js': 'path-to/bower_components/crypto-js/crypto-js' } }); require(["crypto-js"], function (CryptoJS) { console.log(CryptoJS.HmacSHA1("Message", "Key")); });
Usage without RequireJS
<script type="text/Javascript" src="path-to/bower_components/crypto-js/crypto-js.js">script> <script type="text/Javascript"> var encrypted = CryptoJS.AES(...); var encrypted = CryptoJS.SHA256(...); script>
API
See: https://code.google.com/p/crypto-js
AES Encryption
Plain text encryption
var CryptoJS = require("crypto-js"); // Encrypt var cipherText = CryptoJS.AES.encrypt('my message', 'secret key 123').toString(); // Decrypt var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); var originalText = bytes.toString(CryptoJS.enc.Utf8); console.log(originalText); // 'my message'
Object encryption
var CryptoJS = require("crypto-js"); var data = [{id: 1}, {id: 2}] // Encrypt var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString(); // Decrypt var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); console.log(decryptedData); // [{id: 1}, {id: 2}]
List of modules
crypto-js/core
crypto-js/x64-core
crypto-js/lib-typedarrays
crypto-js/md5
crypto-js/sha1
crypto-js/sha256
crypto-js/sha224
crypto-js/sha512
crypto-js/sha384
crypto-js/sha3
crypto-js/ripemd160
crypto-js/hmac-md5
crypto-js/hmac-sha1
crypto-js/hmac-sha256
crypto-js/hmac-sha224
crypto-js/hmac-sha512
crypto-js/hmac-sha384
crypto-js/hmac-sha3
crypto-js/hmac-ripemd160
crypto-js/aes
crypto-js/tripledes
crypto-js/rc4
crypto-js/rabbit
crypto-js/rabbit-legacy
crypto-js/evpkdf
crypto-js/format-openssl
crypto-js/format-hex
crypto-js/enc-latin1
crypto-js/enc-utf8
crypto-js/enc-hex
crypto-js/enc-utf16
crypto-js/enc-base64
crypto-js/mode-cfb
crypto-js/mode-ctr
crypto-js/mode-ctr-gladman
crypto-js/mode-ofb
crypto-js/mode-ecb
crypto-js/pad-pkcs7
crypto-js/pad-ansix923
crypto-js/pad-iso10126
crypto-js/pad-iso97971
crypto-js/pad-zeropadding
crypto-js/pad-nopadding
【动手所得】
const MD5 = require('/path/crypto-js/md5')
const pwdMd5 = MD5(pwdWithSalt).toString()