小天管理 发表于 2024年7月3日 发表于 2024年7月3日 一般是公钥加密,私钥解密。 但是这份代码,需要私钥加密,公钥解密。 下边是 php 代码,公钥解密 function public_key_decrypt($data, $public_key) { $public_key = '-----BEGIN PUBLIC KEY-----' . "\n" . $public_key . "\n" . '-----END PUBLIC KEY-----'; $data = base64_decode($data); $pu_key = openssl_pkey_get_public($public_key); $crypto = ''; foreach (str_split($data, 128) as $chunk) { openssl_public_decrypt($chunk, $decryptData, $pu_key); $crypto .= $decryptData; } return $crypto; } 用 chatgpt 转化为 golang 的时候代码有问题。 想问下该怎么处理。 func (t *TopPayService) rsaPublicDecrypt(publicKey *rsa.PublicKey, encryptedData []byte) ([]byte, error) { // 使用 RSA OAEP 解密 decryptedData, err := rsa.DecryptOAEP( sha256.New(), // 使用 SHA-256 作为哈希函数 rand.Reader, // 随机数生成器 publicKey, // 公钥 encryptedData, // 加密的数据 nil, // 可选的 label ,默认为 nil ) if err != nil { return nil, err } return decryptedData, nil }
已推荐帖子