最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

带有公钥和私钥的简单加密消息

网站源码admin35浏览0评论

带有公钥和私钥的简单加密消息

带有公钥和私钥的简单加密消息

我的代码怎么能做到完美无懈可击。 首先我用

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()

试了很多次都没解决

回答如下:
发布评论

评论列表(0)

  1. 暂无评论