암호화 표준의 JavaScript 라이브러리.
cryptojs의 적극적인 개발이 중단되었습니다. 이 라이브러리는 더 이상 유지 관리되지 않습니다.
요즘 Nodejs 및 최신 브라우저에는 기본 Crypto
모듈이 있습니다. Cryptojs의 최신 버전은 Math.random()
이 암호화 안전하지 않기 때문에 임의의 숫자 생성에 기본 Crypto 모듈을 이미 사용하고 있습니다. cryptojs의 추가 개발은 기본 암호화의 래퍼 일뿐입니다. 따라서 개발 및 유지 보수가 중단되었으며 이제는 기본 crypto
모듈로 갈 시간입니다.
요구 사항 :
npm install crypto-js
일반적인 API 통화 서명 사용 사례에 대한 ES6 가져 오기 :
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 해셔
블로우 피쉬 지원
묶음 릴리스에서 모듈 순서를 수정하십시오.
공개 된 package.json에 브라우저 필드를 포함시킵니다.
Base64 인코딩의 URL 안전 변형을 추가했습니다. 357
암호화 브라우저 패키지를 추가하려면 웹 팩을 피하십시오. 364
이것은 일부 환경에 대한 변경 사항을 포함하는 것을 포함한 업데이트입니다.
이 버전에서 Math.random()
기본 암호화 모듈의 임의의 방법으로 대체되었습니다.
이러한 이유로 Cryptojs는 기본 Crypto 모듈이없는 일부 JavaScript 환경에서 실행되지 않을 수 있습니다. IE 10 또는 이전 또는 원시 반응과 같은.
롤백, 3.3.0
은 3.1.9-1
과 동일합니다.
기본 보안 암호화 모듈 사용의 움직임은 새로운 4.xx
버전으로 이동됩니다. 깨진 변화이기 때문에 미성년자 릴리스에는 영향이 너무 큽니다.
기본 암호화 모듈의 사용이 수정되었습니다. 기본 암호화 모듈의 가져 오기 및 액세스가 개선되었습니다.
이 버전에서 Math.random()
기본 암호화 모듈의 임의의 방법으로 대체되었습니다.
이러한 이유로 Cryptojs는 기본 Crypto 모듈이없는 일부 JavaScript 환경에서 실행되지 않을 수 있습니다. IE 10 또는 이전과 같은.
그러한 환경에서 cryptojs를 실행하는 것이 절대적이라면 3.1.x
버전으로 유지하십시오. 암호화 및 암호 해독은 호환됩니다. 그러나 3.1.x
버전은 여전히 무작위가 아니기 때문에 암호적으로 안전하지 않은 Math.random()
사용합니다.
이 버전은 CRITICAL
BUG
와 함께 제공되었습니다.
이 버전을 사용하지 마십시오! 제발, 최신 버전을 찾으십시오!
3.1.x
는 CommonJS 모듈로 싸인 원래 cryptojs를 기반으로합니다.