2016. 9. 1. 18:12
반응형

javascript로 암복호화 처리용 모듈이 있다.


CryptoJS

download : https://code.google.com/archive/p/crypto-js/downloads


암축을 풀어서 rollups\aes.js 파일 사용

<script type="text/javascript" src="aes.js"></script>

// sample 소스

var key = "Secret Passphrase";

var text = "Message1234";


document.write(CryptoJS.AES.encrypt(text, key));

document.write("<br>");

document.write(CryptoJS.AES.decrypt(CryptoJS.AES.encrypt(text, key), key).toString(CryptoJS.enc.Utf8));


인코딩은 utf8로 되어 있다. (인코딩이 다르면 깨질수 있음)


iv도 넣을수 있음.

var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');

var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');

var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });


암호화 된것을 java에서 풀수도 있다.

byte[] key = new byte[]{(byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x06,  ~~~~~~~~

byte[] encData = new byte[]{(byte)0x76, (byte)0xb3, (byte)0x93, (byte)0x79, (byte)0xf4, (byte)0xca, ~~~~

 

SecretKey sk = new SecretKeySpec(key, "AES"); 

AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv); 

 

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 

cipher.init(Cipher.DECRYPT_MODE, sk, paramSpec); 

byte[] decData = cipher.doFinal(encData); 


java와 연계는 테스트 해보지 않았음.

"AES/CBC/PKCS5Padding" 방식이 같으면 가능할것이라 생각함.


반응형
Posted by seongsland