node-uuid可以快速地生成符合 RFC4122 規范 version 1 或者 version 4 的 UUID。js-base64可以實現Base64編碼和解碼,支持UTF-8編碼。crypto-js 可以非常方便地在 JavaScript 進行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,進行 AES、DES、Rabbit、RC4、Triple DES 加解密。SJCL是一個由斯坦福大學計算機安全實驗室創立的項目,旨在創建一個安全、快速、短小精悍、易使用、跨瀏覽器的JavaScript加密庫。
node-uuid可以快速地生成符合 RFC4122 規范 version 1 或者 version 4 的 UUID(Universally Unique IDentifier, 標識符)。
UUID的出現,是為了在一個復雜的系統中,唯一的標識每個信息實體,同時不需要有一個集中的id管理。也就是說,根據某種規則來為一個信息實體分配一個唯一的id,而且不需要一個id管理器來保證這個id的唯一性。
UUID是128位的全局唯一標識符,通常由32字節的字符串表示。它通過MAC地址、時間戳、命名空間、隨機數、偽隨機數來保證生成ID的唯一性。version 1 是基于時間戳生成(time-based);version 1 是隨機生成(random(
version 1:
var uuidv1 = require('../../lib/uuid/we-uuidv1'); console.log(uuidv1()); // 輸出:70d47fd0-d250-11e6-9816-45a4888ae4f:
version 4:
var uuidv4 = require('../../lib/uuid/we-uuidv4'); console.log(uuidv4()); // 輸出:d839476c-ce27-4d24-a431-e96123c1916b
可以設定產生參數
var v1 = uuidv1({ node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], clockseq: 0x1234, msecs: new Date().getTime(), nsecs: 5678 }); console.log(v1); // 輸出:908e3a9e-d250-11e6-9234-0123456789ab
js-base64可以實現Base64編碼和解碼,支持UTF-8編碼。
Base64是一種基于64個可打印字符來表示二進制數據的表示方法。由于2的6次方等于64,所以每6個比特為一個單元,對應某個可打印字符。三個字節有24個比特,對應于4個Base64單元,即3個字節需要用4個可打印字符來表示。它可用來作為電子郵件的傳輸編碼。在Base64中的可打印字符包括字母A-Z、a-z、數字0-9 ,這樣共有62個字符,此外兩個可打印符號在不同的系統中而不同
Base64其實是一種簡單的置換加密方式,但是BASE64的用處往往并不是為了防止信息泄露,而且為了方便傳輸,進過BASE64編碼后的信息會比原始信息長,大概是4/3倍。
編碼:
console.log(Base64.encode('Wechat')); // 輸出:V2VjaGF0 console.log(Base64.encode('微信')); // 輸出:5b6u5L+h
解碼:
console.log(Base64.decode('V2VjaGF0')); // 輸出:Wechat console.log(Base64.decode('5b6u5L+h')); // 輸出:微信
crypto-js 可以非常方便地在 JavaScript 進行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,進行 AES、DES、Rabbit、RC4、Triple DES 加解密。
CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法,目前已支持的算法包括:
MD5MD5:
console.log(CryptoJS.MD5('Wechat').toString()); // 輸出:98ffdc1f1a326c9f73bbe0b78e1d180e
SHA1:
console.log(CryptoJS.SHA1('Wechat').toString()); // 輸出:42989457d716a8b89f99c687a41779d4102b5491
SHA256:
console.log(CryptoJS.SHA256('Wechat').toString()); // 輸出: 885e2deda21a6c752f05e9c3ac95c90de31bce4b25ce38c330feee389906c83f
SJCL(斯坦福大學Javascript加密庫簡稱),是一個由斯坦福大學計算機安全實驗室創立的項目,旨在創建一個安全、快速、短小精悍、易使用、跨瀏覽器的JavaScript加密庫。
SJCL使用了行業標準的AES 128, 192, 256位加密;SHA256 哈希函數;HMAC驗證碼;PBKDF2密碼加強器;CCM和OCB認證加密模式。
加密:
var enStr = sjcl.encrypt("password", "Wechat"); console.log(enStr);
解密:
var deStr = sjcl.decrypt("password", enStr); console.log(deStr);
新聞熱點
疑難解答