멋진 커뮤니티 모듈

암호화-JS

암호화 표준의 JavaScript 라이브러리입니다.

Node.js(설치)

요구사항:

  • Node.js
  • npm(Node.js 패키지 관리자)
1
npm install crypto-js

Usage

일반적인 API 호출 서명 사용 사례에 대한 ES6 가져오기:

1 2 3 4 5 6 7
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));

모듈식에는 다음이 포함됩니다.

1 2 3 4
var AES = require("crypto-js/aes"); var SHA256 = require("crypto-js/sha256"); ... console.log(SHA256("Message"));

추가 메소드에 액세스하기 위한 모든 라이브러리 포함:

1 2
var CryptoJS = require("crypto-js"); console.log(CryptoJS.HmacSHA1("Message", "Key"));

클라이언트(브라우저)

요구사항:

  • Node.js
  • Bower(프런트엔드용 패키지 관리자)
1
bower install crypto-js

Usage

모듈식에는 다음이 포함됩니다.

1 2 3 4 5 6 7 8 9 10 11 12 13
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")); });

추가 메소드에 액세스하기 위한 모든 라이브러리 포함:

1 2 3 4 5 6 7 8 9 10
// 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

1 2 3 4 5
<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

참조: https://code.google.com/p/crypto-js

AES Encryption

일반 텍스트 암호화

1 2 3 4 5 6 7 8 9 10
var CryptoJS = require("crypto-js"); // Encrypt var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123'); // Decrypt var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123'); var plaintext = bytes.toString(CryptoJS.enc.Utf8); console.log(plaintext);

객체 암호화

1 2 3 4 5 6 7 8 9 10 11 12
var CryptoJS = require("crypto-js"); var data = [{id: 1}, {id: 2}] // Encrypt var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123'); // Decrypt var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123'); var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); console.log(decryptedData);

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/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