无法通过代码示例中的Terminal使用信息

编程入门 行业动态 更新时间:2024-10-14 18:21:35

无法通过代码<a href=https://www.elefans.com/category/jswz/34/1770116.html style=示例中的Terminal使用信息"/>

无法通过代码示例中的Terminal使用信息

我是JS的新手,并尝试编写一个简单的代码通过Javascript加密和解密信息,示例代码如下。它一直工作到加密为止,但是我想将“ mystr”带回解密部分,但是这是行不通的。任何提示都会有所帮助,谢谢!

var crypto = require('crypto');                                                                 
var mykey = crypto.createCipher('aes-256-cbc', 'mypassword');                                   

const readline = require('readline').createInterface({                                          
    input: process.stdin,                                                                       
    output: process.stdout                                                                      
})                                                                                              


readline.question(`The string to Encrypt?`, (secret) => {                                       
    var mystr = mykey.update(`${secret}`, 'utf8', 'hex')                                        
    mystr += mykey.final('hex');                                                                
    console.log(`${mystr}`);                                                                    
   // readline.close()                                                                          

    var mystr2 = mykey.update('mystr', 'hex', 'utf8');               
    mystr2 += mykey.final('utf8');                                                              

    console.log(`${decrypt}`);                                                                  
    readline.close()                                                                            
})                                                                                              

以下错误:

pooja@X1-Carbon-6:~/Documents/weiterbildung/javascript$ node encryption.js
The string to Encrypt?pooja
60c1fddc88b9048273e0eb532146d72c
readline.js:924
            throw err;
            ^

Error: Trying to add data in unsupported state
    at Error (native)
    at Cipher.update (crypto.js:140:26)
    at /home/pooja/Documents/weiterbildung/javascript/encryption.js:18:24
    at Interface._onLine (readline.js:208:5)
    at Interface._line (readline.js:549:8)
    at Interface._ttyWrite (readline.js:826:14)
    at ReadStream.onkeypress (readline.js:105:10)
    at emitTwo (events.js:87:13)
    at ReadStream.emit (events.js:172:7)
    at emitKeys (readline.js:1250:14)
回答如下:

您需要创建一个解密器:

var crypto = require('crypto');

const readline = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout
})

readline.question(`The string to Encrypt?`, (secret) => {

    //create cipher
    var cipher = crypto.createCipher('aes-256-cbc', 'mypassword');
    //encrypt string
    var mystr = cipher.update(`${secret}`, 'utf8', 'hex')
    mystr += cipher.final('hex');
    console.log(`${mystr}`);

    //create decipher
    var decipher = crypto.createDecipher('aes-256-cbc', 'mypassword');
    //decrypt string
    var mystr2 = decipher.update(`${mystr}`, 'hex', 'utf8')
    mystr2 += decipher.final('utf8');

    console.log(mystr2);
    readline.close()
})

有关更多信息,请点击此处:https://www.w3schools/nodejs/ref_crypto.asp

更多推荐

无法通过代码示例中的Terminal使用信息

本文发布于:2024-05-07 05:33:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754530.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:示例   代码   信息   Terminal

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!