JavaScript Library ของมาตรฐาน Crypto
การพัฒนา Cryptojs ได้ถูกยกเลิก ห้องสมุดนี้ไม่ได้รับการดูแลอีกต่อไป
ทุกวันนี้ NodeJS และ Modern Browsers มีโมดูล Crypto
ดั้งเดิม CryptoJS เวอร์ชันล่าสุดใช้โมดูล crypto ดั้งเดิมสำหรับการสร้างหมายเลขสุ่มเนื่องจาก Math.random()
ไม่ปลอดภัย crypto การพัฒนา cryptojs ต่อไปจะส่งผลให้มันเป็นเพียง wrapper ของ crypto พื้นเมือง ดังนั้นการพัฒนาและการบำรุงรักษาได้ถูกยกเลิกจึงถึงเวลาที่จะต้องไปสำหรับโมดูล crypto
ดั้งเดิม
ความต้องการ:
npm install crypto-js
ES6 Import สำหรับกรณีการลงนามการโทร API ทั่วไป:
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 ) ) ;
โมดูลาร์รวมถึง:
var AES = require ( "crypto-js/aes" ) ;
var SHA256 = require ( "crypto-js/sha256" ) ;
...
console . log ( SHA256 ( "Message" ) ) ;
รวมถึงไลบรารีทั้งหมดสำหรับการเข้าถึงวิธีการพิเศษ:
var CryptoJS = require ( "crypto-js" ) ;
console . log ( CryptoJS . HmacSHA1 ( "Message" , "Key" ) ) ;
ความต้องการ:
bower install crypto-js
โมดูลาร์รวมถึง:
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" ) ) ;
} ) ;
รวมถึงไลบรารีทั้งหมดสำหรับการเข้าถึงวิธีการพิเศษ:
// 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" ) ) ;
} ) ;
< 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 >
ดู: https://cryptojs.gitbook.io/docs/
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'
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}]
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/pbkdf2
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
เปลี่ยนอัลกอริทึมแฮชเริ่มต้นและการทำซ้ำสำหรับ PBKDF2 เพื่อป้องกันการรักษาความปลอดภัยที่อ่อนแอโดยใช้การกำหนดค่าเริ่มต้น
KDF Hasher ที่กำหนดเอง
การสนับสนุน blowfish
แก้ไขคำสั่งโมดูลในการเปิดตัวแบบรวม
รวมฟิลด์เบราว์เซอร์ในแพ็คเกจที่ปล่อยออกมา json
เพิ่มตัวแปร URL ที่ปลอดภัยของการเข้ารหัส Base64 357
หลีกเลี่ยง WebPack เพื่อเพิ่มแพ็คเกจ Crypto-Browser 364
นี่คือการอัปเดตรวมถึงการเปลี่ยนแปลงการเปลี่ยนแปลงสำหรับสภาพแวดล้อมบางอย่าง
ในรุ่นนี้ Math.random()
ถูกแทนที่ด้วยวิธีการสุ่มของโมดูล crypto ดั้งเดิม
ด้วยเหตุนี้ cryptojs อาจไม่ทำงานในสภาพแวดล้อม JavaScript บางอย่างโดยไม่มีโมดูล crypto ดั้งเดิม เช่น IE 10 หรือก่อนหรือตอบสนองพื้นเมือง
ย้อนกลับ, 3.3.0
เหมือนกับ 3.1.9-1
การย้ายโมดูล Crypto ที่ปลอดภัยแบบดั้งเดิมจะถูกเปลี่ยนเป็นเวอร์ชัน 4.xx
ใหม่ เนื่องจากเป็นการเปลี่ยนแปลงที่เกิดขึ้นผลกระทบจึงใหญ่เกินไปสำหรับการเปิดตัวเล็กน้อย
การใช้โมดูล crypto ดั้งเดิมได้รับการแก้ไขแล้ว การนำเข้าและเข้าถึงโมดูล crypto ดั้งเดิมได้รับการปรับปรุงแล้ว
ในรุ่นนี้ Math.random()
ถูกแทนที่ด้วยวิธีการสุ่มของโมดูล crypto ดั้งเดิม
ด้วยเหตุนี้ cryptojs อาจไม่ทำงานในสภาพแวดล้อม JavaScript บางอย่างที่ไม่มีโมดูล crypto ดั้งเดิม เช่น IE 10 หรือก่อน
หากจำเป็นต้องใช้ cryptojs ในสภาพแวดล้อมเช่นนี้ให้อยู่กับรุ่น 3.1.x
การเข้ารหัสและการถอดรหัสยังคงเข้ากันได้ แต่โปรดจำไว้ว่า 3.1.x
เวอร์ชันยังคงใช้ Math.random()
ซึ่งไม่ปลอดภัยในการเข้ารหัสเนื่องจากไม่สุ่มเพียงพอ
รุ่นนี้มาพร้อมกับ BUG
CRITICAL
อย่าใช้เวอร์ชันนี้! กรุณาไปสำหรับเวอร์ชันใหม่กว่า!
3.1.x
ขึ้นอยู่กับ cryptojs ดั้งเดิมห่อด้วยโมดูล CommonJS