Documentation
¶
Index ¶
- func AESCBCDecrypt(key, iv, ciphertext []byte) ([]byte, error)
- func AESCBCEncrypt(key, iv, plaintext []byte) (usedIV []byte, ciphertext []byte, err error)
- func AESDecrypt(keyStr, ciphertextStr string) (string, error)
- func AESEncrypt(keyStr, plaintext string) (string, error)
- func AESGCMDecrypt(key, nonce, ciphertext, aad []byte) ([]byte, error)
- func AESGCMEncrypt(key, nonce, plaintext, aad []byte) (usedNonce []byte, ciphertext []byte, err error)
- func PKCS7Pad(data []byte, blockSize int) []byte
- func PKCS7Unpad(data []byte, blockSize int) ([]byte, error)
- func ParseRSAPrivateKeyFromPEM(pemBytes []byte) (*rsa.PrivateKey, error)
- func ParseRSAPublicKeyFromPEM(pemBytes []byte) (*rsa.PublicKey, error)
- func RSADecryptOAEP(privPEM, ciphertext, label []byte) ([]byte, error)
- func RSADecryptPKCS1v15(privPEM, ciphertext []byte) ([]byte, error)
- func RSAEncryptOAEP(pubPEM, plaintext, label []byte) ([]byte, error)
- func RSAEncryptPKCS1v15(pubPEM, plaintext []byte) ([]byte, error)
- func RandomBytes(n int) ([]byte, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AESCBCDecrypt ¶
AESCBCDecrypt 使用 AES-CBC + PKCS#7 对称解密;返回明文。 参数: - key:AES 密钥;需与加密时一致。 - iv:加密时返回的初始化向量。 - ciphertext:密文数据。 注意:若填充不合法或密钥/iv 不匹配会返回错误。
func AESCBCEncrypt ¶
AESCBCEncrypt 使用 AES-CBC + PKCS#7 对称加密;返回 iv 与密文。 参数: - key:AES 密钥,长度可为 16/24/32 字节。 - iv:初始化向量(16 字节);若传 nil 则内部生成随机 iv 并返回。 - plaintext:明文数据。 用法:将返回的 iv 与密文一起持久化/传输;解密时需要同样的 iv。
func AESDecrypt ¶
AESDecrypt 字符串级别的AES-GCM解密函数 输入: - keyStr: 密钥字符串,必须与加密时使用的相同 - ciphertextStr: 加密后的base64编码字符串 输出: - 解密后的明文字符串 - 错误信息
func AESEncrypt ¶
AESEncrypt 字符串级别的AES-GCM加密函数 输入: - keyStr: 密钥字符串,会被转换为256位密钥 - plaintext: 要加密的明文字符串 输出: - 加密后的base64编码字符串,包含nonce和密文 - 错误信息
func AESGCMDecrypt ¶
AESGCMDecrypt 使用 AES-GCM 解密;返回明文。 参数: - key:AES 密钥;需与加密时一致。 - nonce:加密时返回的随机数。 - ciphertext:密文(包含认证标签)。 - aad:加密时使用的附加认证数据;需一致。 注意:认证失败(密钥/nonce/aad 不匹配或数据被篡改)会返回错误。
func AESGCMEncrypt ¶
func AESGCMEncrypt(key, nonce, plaintext, aad []byte) (usedNonce []byte, ciphertext []byte, err error)
AESGCMEncrypt 使用 AES-GCM 进行认证加密;返回 nonce 与密文(包含认证标签)。 参数: - key:AES 密钥,长度可为 16/24/32 字节(分别对应 AES-128/192/256)。 - nonce:12 字节随机数;若传 nil 则内部生成随机 nonce 并返回。 - plaintext:明文数据。 - aad:附加认证数据(不加密但参与完整性校验,可为 nil)。 用法:将返回的 nonce 与密文一起持久化/传输;解密时需要同样的 aad。
func PKCS7Pad ¶
PKCS7Pad 使用 PKCS#7 规则对数据进行填充,blockSize 通常为 16(AES)。 用法:CBC 加密前对明文进行填充;解密后需要配合 PKCS7Unpad。
func PKCS7Unpad ¶
PKCS7Unpad 移除 PKCS#7 填充;若填充不合法返回错误。 用法:CBC 解密后对明文去填充。
func ParseRSAPrivateKeyFromPEM ¶
func ParseRSAPrivateKeyFromPEM(pemBytes []byte) (*rsa.PrivateKey, error)
ParseRSAPrivateKeyFromPEM 解析 PEM 格式私钥为 *rsa.PrivateKey。 支持 "RSA PRIVATE KEY"(PKCS#1)或 "PRIVATE KEY"(PKCS#8)。
func ParseRSAPublicKeyFromPEM ¶
ParseRSAPublicKeyFromPEM 解析 PEM 格式公钥为 *rsa.PublicKey。 支持 "PUBLIC KEY"(PKIX)或 "RSA PUBLIC KEY"(PKCS#1)。
func RSADecryptOAEP ¶
RSADecryptOAEP 使用 RSA-OAEP(SHA-256) 私钥解密;返回明文。
func RSADecryptPKCS1v15 ¶
RSADecryptPKCS1v15 使用 RSA-PKCS#1 v1.5 私钥解密;返回明文。
func RSAEncryptOAEP ¶
RSAEncryptOAEP 使用 RSA-OAEP(SHA-256) 公钥加密;比 PKCS#1 v1.5 更安全。 参数 label 可选(通常为 nil);加解密时需一致。
func RSAEncryptPKCS1v15 ¶
RSAEncryptPKCS1v15 使用 RSA-PKCS#1 v1.5 公钥加密;适合短数据(如加密对称密钥)。 用法:将较大的数据用 AES-GCM 加密,再将 AES 密钥用 RSA 公钥加密(混合加密)。
func RandomBytes ¶
RandomBytes 生成指定长度的随机字节(使用加密安全随机数)。 用法:常用于生成 AES 密钥、GCM Nonce、CBC IV 等。
Types ¶
This section is empty.