مكتبة جافا سكريبت لمعايير التشفير.
تم إيقاف التطوير النشط من cryptojs. لم تعد هذه المكتبة محفوظة.
في الوقت الحاضر ، تحتوي NodeJs والمتصفحات الحديثة على وحدة Crypto
أصلية. يستخدم أحدث إصدار من Cryptojs بالفعل وحدة التشفير الأصلية لتوليد الأرقام العشوائية ، لأن Math.random()
ليس آمنًا للتشفير. سيؤدي مزيد من التطوير من cryptojs إلى أن يكون فقط غلاف من التشفير الأصلي. لذلك ، تم إيقاف التطوير والصيانة ، فقد حان الوقت للذهاب إلى وحدة crypto
الأصلية.
متطلبات:
npm install crypto-js
ES6 استيراد CASE لتوقيع مكالمات 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
دعم السمك
إصلاح ترتيب الوحدة النمطية في الإصدار المجمعة.
قم بتضمين حقل المتصفح في الحزمة.
تمت إضافة عنوان URL الآمن لترميز BASE64. 357
تجنب WebPack لإضافة حزمة مشاجرة مشفرة. 364
هذا تحديث بما في ذلك كسر التغييرات لبعض البيئات.
في هذا الإصدار ، تم استبدال Math.random()
بالطرق العشوائية لوحدة التشفير الأصلية.
لهذا السبب ، قد لا يعمل Cryptojs في بعض بيئات JavaScript بدون وحدة تشفير أصلية. مثل IE 10 أو قبل أو رد فعل أصلي.
التراجع ، 3.3.0
هو نفس 3.1.9-1
.
سيتم نقل حركة استخدام وحدة التشفير الآمنة الأصلية إلى إصدار جديد 4.xx
جديد. نظرًا لأنه تغيير كسر ، يكون التأثير أكبر من اللازم لإصدار بسيط.
تم إصلاح استخدام وحدة التشفير الأصلية. تم تحسين استيراد وحدة التشفير الأصلية والوصول إليها.
في هذا الإصدار ، تم استبدال Math.random()
بالطرق العشوائية لوحدة التشفير الأصلية.
لهذا السبب ، قد لا يعمل Cryptojs في بعض بيئات JavaScript بدون وحدة تشفير أصلية. مثل أي 10 أو قبل.
إذا كان ذلك مطلوبًا لتشغيل cryptojs في مثل هذه البيئة ، فابق مع إصدار 3.1.x
تشفير وفك تشفير يبقى متوافق. ولكن ضع في اعتبارك 3.1.x
لا تزال الإصدارات تستخدم Math.random()
وهو أمر غير آمن من الناحية التشفية ، لأنه ليس عشوائيًا بما فيه الكفاية.
جاء هذا الإصدار جنبا إلى جنب مع BUG
CRITICAL
.
لا تستخدم هذا الإصدار! من فضلك ، اذهب للحصول على نسخة أحدث!
تعتمد 3.1.x
على cryptojs الأصلية ، ملفوفة في وحدات CommonJS.