티스토리 뷰
[node.js] node-forge (OpenSSL, TLS javascript version)
LEIBNIZ 2017. 2. 1. 14:01* node-forge
- Javascript를 사용하여 TLS를 구축한 프레임워크
* client example
<script src="forge.js"></script>
var someBytes = 32;
var key = forge.random.getBytesSync(16);
var iv = forge.random.getBytesSync(16);
var cipher = forge.cipher.createCipher('AES-CBC', key);
cipher.start({ iv: iv });
cipher.update(forge.util.createBuffer(someBytes));
cipher.finish();
var encrypted = cipher.output;
console.log('encrypted : ' + encrypted.toHex());
var decipher = forge.cipher.createDecipher('AES-CBC', key);
decipher.start({ iv: iv });
decipher.update(encrypted);
decipher.finish();
console.log('decrypted : ' + decipher.output.toHex());
* server example
var forge = require('node-forge');
function encrypt(password) {
var input = fs.readFileSync('input.txt', { encoding: 'binary' });
var keySize = 24;
var ivSize = 8;
var salt = forge.random.getBytesSync(8);
var derivedBytes = forge.pbe.opensslDeriveBytes(password, salt, keySize + ivSize/*, md*/);
var buffer = forge.util.createBuffer(derivedBytes);
var key = buffer.getBytes(keySize);
var iv = buffer.getBytes(ivSize);
var cipher = forge.cipher.createCipher('3DES-CBC', key);
cipher.start({ iv: iv });
cipher.update(forge.util.createBuffer(input, 'binary'));
cipher.finish();
var output = forge.util.createBuffer();
if (salt !== null) {
output.putBytes('Salted__');
output.putBytes(salt);
}
output.putBuffer(cipher.output);
}
출처 : https://github.com/digitalbazaar/forge
'programming > react & mean' 카테고리의 다른 글
[react] react-redux 사용법 (0) | 2018.04.11 |
---|---|
[MEAN STACK] 예제 - TODO Single Page App (0) | 2017.05.09 |
[node.js, js] 콜백함수 (0) | 2017.04.23 |
[node.js, cipher, js] AES-CBC를 이용한 한글 암호화 (0) | 2017.03.03 |
- Total
- Today
- Yesterday
- ucrtbase.dll
- ATS
- TypedArray
- execute double click
- 비대칭키
- angular
- MEAN stack
- JavaScript
- Universal CRT
- HTTPS
- yss
- reactivex
- PCX
- iOS10
- App Transport Security
- build set
- Visual Studio
- node js
- 윈도우 라이브러리
- 대칭키
- full stack
- 암호화
- remote debug
- cipher
- rxswift
- 전자서명
- TLS1.2
- executable jar
- AES
- Node.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |