제목 | CI 암호화 후, node.js에서 복호화 | ||
---|---|---|---|
카테고리 | JavaScript | ||
글쓴이 | smile_jax | 작성시각 | 2018/07/24 18:40:57 |
|
|||
여러 예제들로 테스트 해봤는데, 여전히 오류 입니다. 복호화한 텍스트가 깨져나오는데, 잘못 복호화 된 것 같기도 하고, 해당 코드에 대한 이해도가 높지 않아서 도움을 요청 드립니다. CI php 코드 입니다.(키 텍스트는 config.php에 설정했습니다.) $this->load->library('encryption'); $this->encryption->initialize( array( 'cipher' => 'aes-256', 'mode' => 'cbc', 'driver' => 'mcrypt' ) ); $ciphertext = $this->encryption->encrypt($usr_info);
node.js 복호화 코드 1번 예 입니다. 아래 코드에 대한 복호화 결과는 텍스트가 깨저 나옵니다. (output 인코딩인 utf-8를 제거해도 같습니다.) var crypto = require('crypto'); var key = 'php에서 지정한 키 텍스트'; var buf = new Buffer(result.user_data, 'base64'); var iv = buf.slice(0, 16); var crypt = buf.toString('base64', 16); var decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); decipher.setAutoPadding(false); var dec = decipher.update(crypt,'base64','utf-8'); dec += decipher.final('utf-8');
node.js 복호화 코드 2번 예 입니다. 아래 코드에 대한 복호화 결과는 "Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decryp" 입니다. var crypto = require('crypto'); var decipher = crypto.createDecipher('aes-256-cbc', 'php에서 지정한 키 텍스트'); var encrypted = result.user_data; var decrypted = decipher.update(encrypted, 'hex', 'utf8'); decrypted += decipher.final('utf8');
|
|||
다음글 | RESPONSE 에 상태값을 주는 방법이 있나요? (4) | ||
이전글 | DB 툴로 했을 때와 model에서 query 가 다릅... (4) | ||
한대승(불의회상)
/
2018/07/25 10:55:48 /
추천
1
|
smile_jax
/
2018/07/26 11:09:53 /
추천
0
댓글 보고 생각을 바꿔 openssl 방식 암호화로 변경하여 적용하였네요. 답변 감사합니다. |
반드시 ci encryption을 사용하실 필요는 없습니다.
아래 URL 참고하세요.
https://gist.github.com/schakko/2628689