admin 管理员组文章数量: 1184232
带有公钥和私钥的简单加密消息
我的代码怎么能做到完美无懈可击。 首先我用
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()
试了很多次都没解决
回答如下:本文标签: 带有公钥和私钥的简单加密消息
版权声明:本文标题:带有公钥和私钥的简单加密消息 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1717609677a709592.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论