亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 RSA-2048 服務器公鑰加密客戶端私鑰

使用 RSA-2048 服務器公鑰加密客戶端私鑰

Go
12345678_0001 2023-07-04 17:08:31
我需要使用 RSA-2048 服務器公鑰加密客戶端私鑰。我知道私鑰顯然比公鑰長,我不確定這是否可能......但我看到類似的任務是在Python中完成的,所以我想知道你的意見。/* main */clientPrivateKey, _ := generateRsaPair(2048)_, serverPublicKey := generateRsaPair(2048)clientPrivateKeyAsByte := privateKeyToBytes(clientPrivateKey)encryptWithPublicKey(clientPrivateKeyAsByte, serverPublicKey) 致命錯誤 crypto/rsa:消息對于 RSA 公鑰大小來說太長/* Functions */func generateRsaPair(bits int) (*rsa.PrivateKey, *rsa.PublicKey) {    privkey, err := rsa.GenerateKey(rand.Reader, bits)    if err != nil {        log.Error(err)    }    return privkey, &privkey.PublicKey}func encryptWithPublicKey(msg []byte, pub *rsa.PublicKey) []byte {    hash := sha512.New()    ciphertext, err := rsa.EncryptOAEP(hash, rand.Reader, pub, msg, nil)    checkError(err)    return ciphertext}func privateKeyToBytes(priv *rsa.PrivateKey) []byte {    privBytes := pem.EncodeToMemory(        &pem.Block{            Type:  "RSA PRIVATE KEY",            Bytes: x509.MarshalPKCS1PrivateKey(priv),        },    )    return privBytes}
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

如果您想加密大于密鑰大小的內容,那么您可以簡單地使用混合加密。您首先使用隨機 AES 密鑰加密(或包裝,如果特定包裝操作可用)私鑰的編碼,例如使用 AES-CBC 或 AES-CTR(具有全零 IV)。然后,您使用私鑰對該 AES 密鑰進行加密。密文由加密的 AES 密鑰和后面的加密數據組成 - 在本例中為 RSA 私鑰。

但請注意,私鑰實際上應該由一個實體管理。稱為私鑰并不是無緣無故的。分發私鑰通常被認為是不好的密鑰管理實踐。


查看完整回答
反對 回復 2023-07-04
  • 1 回答
  • 0 關注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號