javaScript代碼以下:java
'use strict'; const crypto = require('crypto'); //實例化一個AES加密對象 const aesEncrept = crypto.createCipher('aes192', 'key');
aesEncrept.on('readable', () => { let data = aesEncrept.read(); console.log(1); console.log(data); if(data) { console.log(data.toString('hex')); } console.log(2); }); aesEncrept.on('end', () => { console.log(3); }); aesEncrept.write("Hello world!"); aesEncrept.end();
運行結果:ui
1
<Buffer ae 1b 3d 2c a1 56 18 e6 bd b0 30 d0 3d e9 82 b4>
ae1b3d2ca15618e6bdb030d03de982b4
2
1
null
2
3加密
使用事件加密比較有意思的是:spa
1.當數據加密完成能夠讀取的時候( 也就是readable事件觸發的時候 ),readable事件會觸發兩次;3d
2.readable事件第一次觸發的時候data數據是存在的;code
3.readable事件第二次觸發的時候data數據會被置空對象