티스토리 뷰

* 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

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함