Javascript jsencrypt从encrypt函数返回空的解密字符串
我正在玩jsencrypt,发现了一些非常奇怪的东西。这是我的密码。如果加密和解密在变量中,则它们可以工作。但当我控制台记录enc,然后将值复制到字符串中时,解密返回null。有人知道我做错了什么吗Javascript jsencrypt从encrypt函数返回空的解密字符串,javascript,encryption,jsencrypt,Javascript,Encryption,Jsencrypt,我正在玩jsencrypt,发现了一些非常奇怪的东西。这是我的密码。如果加密和解密在变量中,则它们可以工作。但当我控制台记录enc,然后将值复制到字符串中时,解密返回null。有人知道我做错了什么吗 const crypt = new JSEncrypt(); crypt.setPublicKey = `-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnL4SAkXXmeub2DccgTT4v9EQr
const crypt = new JSEncrypt();
crypt.setPublicKey = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnL4SAkXXmeub2DccgTT4v9EQr
vkvqPQPzRPOeIL525tQd7vg1BlgxxnoS4oDn0G3JlzqI6y/VIaZy6QrIo3s5R2A9
IiymPkeVOih4V5QeNSAO8tmUbEX4uEFWQDyObMeyF44R7fUoyUCcC/WdKezwcJlg
q6dXIFJOyEzwJx0MPQIDAQAB
-----END PUBLIC KEY-----`;
crypt.setPrivateKey = `-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKcvhICRdeZ65vYN
xyBNPi/0RCu+S+o9A/NE854gvnbm1B3u+DUGWDHGehLigOfQbcmXOojrL9UhpnLp
CsijezlHYD0iLKY+R5U6KHhXlB41IA7y2ZRsRfi4QVZAPI5sx7IXjhHt9SjJQJwL
9Z0p7PBwmWCrp1cgUk7ITPAnHQw9AgMBAAECgYEAl4kAZrBx1wiLE3cFiAe7WCfl
Kmj/0j6ft/5FeoxfVtJ+bOtPWnB3vBYUS8213WgUOuayDaxu3JX1kq4cMiPL6XWC
gznYdRDrO/92E5OyOjmrAGzItDv/SIoBGv68f/kxYC989H+yd7aCqF8SfRlR0ESi
PnLLSYZfRsB4oLeSpkECQQDZdMLOZ3uiRwBvPV79mqfmME2OpB5VssAS9GO+giF3
c8jibpre2wV/xWZ4/ACeXmFRgejVp09JEvF2OARhgSyVAkEAxNGxzJH22E0ZT3kq
W7L7o8mkCQVjLK99dMaagUg+VpKk+4Y02hBStLP4xnIHt7NfpQ7r+cebk3ZeH5Ep
hO7PCQJBALcKhpPxHWuKcn4wXY4BKYUkcZQ452Phk7YgyvjoVr1S0+xth6VBHU7g
3ZHHJcoozagrPs7hB2cOL/v/yQg+EEUCQH5Ila5OkXWjsnO9qKIBq1giDvAC1ulb
CEIfFA+TjPv7R4RjThIEmyx6tUqO68jAfMPpWRuBKZ9qOWZDu8IhgBECQCZTubwP
zZ+9Kntj9BcoRjYYMeWK8voPzS4n1S8PK3249e7GdfX/Z7OcsvV9gYJ7CZ6W41fo
wa3MnlkEivo3mrA=
-----END PRIVATE KEY-----`;
const text = "some data";
const enc = crypt.encrypt(text);
const dec = crypt.decrypt(enc);
console.log('enc:', enc);
const temp = 'EutZlbeFV2RTG8mk6xUMi/ceN1hmj/xFre+7GkmFMBX5ZTl+rpQlJfZC9uoBBO8ywoi0YceF+lXgpDlvMxUTKnK7nLjt2L4AWEBCXT5XNKdK83N4kkMgZkZocoTD/I7mBBJQ7ZHRgtMRIoPoVBKz2HhGaK2tq3U1lDtkDACuZ3k= ';
// temp is cut and paste from previous console log
const dec2 = crypt.decrypt(temp);
console.log('dec2:', dec2); // prints null
您需要调用函数setPublicKey和setPrivateKey,而不是分配它们 由于您没有实际设置密钥,因此先前的输出将使用不同的密钥进行编码,因此无法解码 您使用的加密字符串“EutZlbeFV2RTG8mk6xUMi/ceN1h…”的上一个示例也不会解码,因为它是使用另一个密钥编码的(可能已丢失) 但是如果你从现在开始复制粘贴,文本将被解码 请注意,您只需要设置私钥,因为私钥包含公钥参数
const crypt=new JSEncrypt();
//设置私钥
setPrivateKey(`BEGIN PRIVATEKEY)-----
MIICDWIBADANBGKQHKIG9W0BAQEFASCAMEWGGIDAGEAAOGBAKCVHIRDEZ65VYN
xyBNPi/0RCu+S+o9A/NE854gvnbm1B3u+DUGWDHGehLigOfQbcmXOojrL9UhpnLp
CsijezlHYD0iLKY+R5U6KHHXLB41I7Y2ZRSRFI4QVZAPI5SX7IXJHHT9SJQJWL
9Z0P7PBWMWCRP1CGUK7ITPANHQW9GMBAAECGYEAL4KAZRBX1WILE3CFIAE7WCFL
Kmj/0j6ft/5FeoxfVtJ+BoTPWNb3VbYus8213WgUuaydaxu3Jx1KQ4cmipl6xWC
gznYdRDrO/92E5OyOjmrAGzItDv/SIoBGv68f/kxYC989H+yd7aCqF8SfRlR0ESi
PNLLSYZFRSB4OLESPKECQDZDMLOZ3UIRWBVPV79MQFMME2OPB5VSSAS9GO+giF3
c8jibpre2wV/xWZ4/ACeXmFRgejVp09JEvF2OARhgSyVAkEAxNGxzJH22E0ZT3kq
W7L7o8mkCQVjLK99dMaagUg+VpKk+4Y02hBStLP4xnIHt7NfpQ7r+cebk3ZeH5Ep
HO7PCQJBALCKHPXHWUKCN4WXY4BKYKCZQ452PHK7YGYVJOVR1S0+xth6VBHU7g
3ZHHJcoozagrPs7hB2cOL/v/yQg+EEUCQH5ILA5OKXWJSNO9QKIBQ1GIDVAC1LB
CEIfFA+TjPv7R4RjThIEmyx6tUqO68jAfMPpWRuBKZ9qOWZDu8IhgBECQCZTubwP
zZ+9Kntj9BcoRjYYMeWK8voPzS4n1S8PK3249e7GdfX/Z7OcsvV9gYJ7CZ6W41fo
wa3MnlkEivo3mrA=
-----结束私钥------`);
const text=“一些数据”;
const enc=crypt.encrypt(文本);
const dec=加密解密(enc);
console.log('enc:',enc);
常数温度='T9tsyIGc+fFea7GWKHiJLOVbZf3vqiVEy/qBK37hxrGlsEQWh2HgD5+76XVqkmz6yU6w77CMX3wsRtH3KeD2NY4wxsb18JwcO4yJcaFL+ZWJ7WS8PUGYI5UXW2LWKW2X8GO/lE25pPJ4+F5BDEM4YKW6HV3Z/yXCwvc=';
const dec2=加密解密(temp);
log('dec2:',dec2)代码>
您确定setPublicKey
和setPrivateKey
不是一种方法吗<代码>设置公钥(“您的密钥”)
例如,是的,这些都是方法。如果使用正确,它可以正常工作:属性将被称为.privateKey
;名称setPublicKey
通常意味着它是您调用的方法。谢谢您的帮助!