对于下面的RSA加密代码,每次对同一条消息进行加密时,结果都会不同。我发现这是由于根据doc使它更安全rand.Reader的功能。但是每次进行 RSA 加密时,我都希望相同的消息得到相同的结果。如何使用 Golang 做到这一点?有一个类似的问题,但似乎答案与如何实现这一目标无关。谢谢!rsa.EncryptOAEP
package main
import (
"crypto"
"crypto/rand"
"crypto/rsa"
"crypto/sha256"
"fmt"
)
func main() {
privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
if err != nil {
panic(err)
}
publicKey := privateKey.PublicKey
message := "super secret message"
encryptedBytes, err := rsa.EncryptOAEP(
sha256.New(),
rand.Reader,
&publicKey,
[]byte(message),
nil)
if err != nil {
panic(err)
}
fmt.Println("encrypted bytes: ", encryptedBytes)
}
更新:我想做确定性 RSA,因为在使用需要确定性输出的 Hyperledger Fabric 链代码(区块链智能合约)时,我想要确定性加密结果。谢谢大家的警告。那么我想我应该关注如何在链代码中启用这些加密算法。相关问题供后来者参考是否有帮助:)
一只萌萌小番薯
相关分类