消息"/>
带有公钥和私钥的简单加密消息
我的代码怎么能做到完美无懈可击。 首先我用
privateKey
加密消息然后用收件人的publicKey
重新加密。但是publicKey
可以很容易地分解为privateKey
。怎样做正确的key
才不容易坏?
这是我的代码
function getKey(text){
let privateKey = [...text].map(e => e.codePointAt())
let publicKey = privateKey.map(e => e ^ 255)
return { publicKey, privateKey }
}
function xorText(text, key){
return String.fromCharCode(
...[...text].map((x, i) => x.codePointAt() ^ key[i % key.length]
))
}
function test(){
let message = 'secret-message-123'
let aliceKey = getKey('password-556')
let bobKey = getKey('bobargs-471')
// encoding message
let messageEncrypted = xorText(message, aliceKey.privateKey)
messageEncrypted = xorText(messageEncrypted, bobKey.publicKey)
// decoding message
let receiptMessage = xorText(messageEncrypted, aliceKey.publicKey)
receiptMessage = xorText(receiptMessage, bobKey.privateKey)
console.log(receiptMessage) // work
// crack publicKey to privateKey
let crack = bobKey.publicKey.map(e => e ^ 255)
console.log(bobKey.privateKey, crack)
console.log('same',bobKey.privateKey.toString() == crack.toString()) // true
}
test()
试了很多次都没解决
回答如下:更多推荐
带有公钥和私钥的简单加密消息
发布评论