Documentation
¶
Index ¶
- Constants
- Variables
- func AesDecrypt(cryptedText, key, iv []byte) ([]byte, error)
- func AesEncrypt(plainText, key, iv []byte) ([]byte, error)
- func AesGCMDecrypt(cipherText, key, nonce []byte) ([]byte, error)
- func AesGCMDecryptWithAAD(cipherText, key, nonce, additionalData []byte) ([]byte, error)
- func AesGCMEncrypt(plainText, key, nonce []byte) ([]byte, error)
- func AesGCMEncryptWithAAD(plainText, key, nonce, additionalData []byte) ([]byte, error)
- func Encrypt(plainPassword string) (string, error)
- func GenerateAESKey(length int) ([]byte, error)
- func PKCS5Padding(plaintext []byte, blockSize int) []byte
- func PKCS5UnPadding(origData []byte) []byte
- func ParseRSAPrivateKeyPEM(privateKeyPEM string) (*rsa.PrivateKey, error)
- func ParseRSAPublicKeyPEM(publicKeyPEM string) (*rsa.PublicKey, error)
- func Sm4Decrypt(cipherText, key, iv []byte) ([]byte, error)
- func Sm4Encrypt(plainText, key, iv []byte) ([]byte, error)
- func Sm4GCMDecrypt(cipherText, key, nonce []byte) ([]byte, error)
- func Sm4GCMEncrypt(plainText, key, nonce []byte) ([]byte, error)
- func Verify(plainPassword, encrypted string) error
- type Argon2Crypto
- type BCryptCrypto
- type Crypto
- type ECDHCrypto
- type ECDSACrypto
- type HMACCrypto
- type OpenSSLFileCrypto
- type PBKDF2Crypto
- type RSACrypto
- func (r *RSACrypto) Decrypt(encryptedData string) (string, error)
- func (r *RSACrypto) DecryptBytes(encryptedData string) ([]byte, error)
- func (r *RSACrypto) Encrypt(data string) (string, error)
- func (r *RSACrypto) EncryptBytes(data []byte) (string, error)
- func (r *RSACrypto) ExportPrivateKey() (string, error)
- func (r *RSACrypto) ExportPrivateKeyPKCS8() (string, error)
- func (r *RSACrypto) ExportPublicKey() (string, error)
- func (r *RSACrypto) ExportPublicKeyPKIX() (string, error)
- type SHACrypto
Constants ¶
const AESGCMNonceSize = 12
AESGCMNonceSize 是标准 AES-GCM 的 nonce 长度。
Variables ¶
var DefaultAESKey = []byte("f51d66a73d8a0927")
DefaultAESKey 默认AES密钥(16字节)
Functions ¶
func AesGCMDecrypt ¶
AesGCMDecrypt 使用 AES-GCM 解密密文。
func AesGCMDecryptWithAAD ¶ added in v0.0.14
AesGCMDecryptWithAAD 使用 AES-GCM 解密密文,并校验附加数据。
func AesGCMEncrypt ¶
AesGCMEncrypt 使用 AES-GCM 加密明文。
func AesGCMEncryptWithAAD ¶ added in v0.0.14
AesGCMEncryptWithAAD 使用 AES-GCM 加密明文,并认证附加数据。
func ParseRSAPrivateKeyPEM ¶
func ParseRSAPrivateKeyPEM(privateKeyPEM string) (*rsa.PrivateKey, error)
ParseRSAPrivateKeyPEM 从 PEM 字符串解析 RSA 私钥,兼容 PKCS#1 与 PKCS#8。
func ParseRSAPublicKeyPEM ¶
ParseRSAPublicKeyPEM 从 PEM 字符串解析 RSA 公钥,兼容 PKIX 与 PKCS#1。
func Sm4Decrypt ¶ added in v0.0.14
Sm4Decrypt 使用 SM4-CBC 解密并校验 PKCS#5 填充。
func Sm4Encrypt ¶ added in v0.0.14
Sm4Encrypt 使用 SM4-CBC 加密明文,返回带 PKCS#5 填充的密文。
func Sm4GCMDecrypt ¶ added in v0.0.14
Sm4GCMDecrypt 使用 SM4-GCM 解密并校验密文完整性。
func Sm4GCMEncrypt ¶ added in v0.0.14
Sm4GCMEncrypt 使用 SM4-GCM 加密明文,返回 ciphertext||tag。
Types ¶
type Argon2Crypto ¶
type Argon2Crypto struct {
// 参数可配置,默认使用推荐值
Memory uint32
Iterations uint32
Parallelism uint8
SaltLength uint32
KeyLength uint32
}
Argon2Crypto 实现 Argon2id 密码哈希算法
func (*Argon2Crypto) Encrypt ¶
func (a *Argon2Crypto) Encrypt(password string) (string, error)
Encrypt 实现密码加密
func (*Argon2Crypto) Verify ¶
func (a *Argon2Crypto) Verify(password, encrypted string) error
Verify 验证密码
type BCryptCrypto ¶
type BCryptCrypto struct{}
func (*BCryptCrypto) Encrypt ¶
func (b *BCryptCrypto) Encrypt(password string) (encrypted string, err error)
Encrypt 使用 bcrypt 加密密码,返回加密后的字符串和空盐值
func (*BCryptCrypto) Verify ¶
func (b *BCryptCrypto) Verify(password, encrypted string) error
Verify 验证密码是否匹配加密后的字符串
type Crypto ¶
type Crypto interface {
// Encrypt 加密密码,返回加密后的字符串(包含算法标识和盐值)
Encrypt(plainPassword string) (encrypted string, err error)
// Verify 验证密码是否匹配
Verify(plainPassword, encrypted string) error
}
Crypto 密码加解密接口
type ECDHCrypto ¶
type ECDHCrypto struct {
// contains filtered or unexported fields
}
ECDHCrypto 实现基于 ECDH 的密钥交换
func (*ECDHCrypto) DeriveSharedSecret ¶
func (e *ECDHCrypto) DeriveSharedSecret(publicKey string) ([]byte, error)
DeriveSharedSecret 根据对方公钥派生共享密钥。
func (*ECDHCrypto) Encrypt ¶
func (e *ECDHCrypto) Encrypt(plainPassword string) (string, error)
Encrypt 返回公钥作为加密结果
func (*ECDHCrypto) Verify ¶
func (e *ECDHCrypto) Verify(plainPassword, encrypted string) error
Verify 验证共享密钥是否一致
type ECDSACrypto ¶
type ECDSACrypto struct {
// contains filtered or unexported fields
}
ECDSACrypto 实现基于 ECDSA 的加密和验证
func NewECDSACrypto ¶
func NewECDSACrypto() (*ECDSACrypto, error)
NewECDSACrypto 创建一个新的 ECDSACrypto 实例
func (*ECDSACrypto) Encrypt ¶
func (e *ECDSACrypto) Encrypt(plainPassword string) (string, error)
Encrypt 使用 ECDSA 对消息进行签名
func (*ECDSACrypto) Verify ¶
func (e *ECDSACrypto) Verify(plainPassword, encrypted string) error
Verify 验证消息的签名是否有效
type HMACCrypto ¶
type HMACCrypto struct {
// contains filtered or unexported fields
}
HMACCrypto 实现基于 HMAC 的加密和验证
func NewHMACCrypto ¶
func NewHMACCrypto(secretKey string) *HMACCrypto
NewHMACCrypto 创建一个新的 HMACCrypto 实例
func (*HMACCrypto) Encrypt ¶
func (h *HMACCrypto) Encrypt(data string) (string, error)
Encrypt 使用 HMAC-SHA256 对数据进行加密
func (*HMACCrypto) Verify ¶
func (h *HMACCrypto) Verify(data, encrypted string) error
Verify 验证数据的 HMAC 值是否匹配
type OpenSSLFileCrypto ¶ added in v0.0.15
type OpenSSLFileCrypto struct {
// contains filtered or unexported fields
}
OpenSSLFileCrypto 实现与 OpenSSL enc 兼容的 AES-256-CBC 文件加解密。
func NewOpenSSLFileCrypto ¶ added in v0.0.15
func NewOpenSSLFileCrypto() *OpenSSLFileCrypto
NewOpenSSLFileCrypto 创建固定参数的 OpenSSL 兼容文件加解密器。
func (*OpenSSLFileCrypto) DecryptReader ¶ added in v0.0.15
func (c *OpenSSLFileCrypto) DecryptReader(password string, source io.Reader, target io.Writer) error
DecryptReader 使用 OpenSSL enc 兼容格式解密输入流。
func (*OpenSSLFileCrypto) EncryptReader ¶ added in v0.0.15
func (c *OpenSSLFileCrypto) EncryptReader(password string, source io.Reader, target io.Writer) error
EncryptReader 使用 OpenSSL enc 兼容格式加密输入流。
type PBKDF2Crypto ¶
type PBKDF2Crypto struct {
// 可配置参数,默认使用推荐值
Iterations int
KeyLength int
Hash func() hash.Hash
HashName string
}
PBKDF2Crypto 实现 PBKDF2-HMAC 密码哈希算法
func NewPBKDF2Crypto ¶
func NewPBKDF2Crypto() *PBKDF2Crypto
NewPBKDF2Crypto 创建带默认参数的 PBKDF2 加密器 (SHA256)
func NewPBKDF2WithSHA512 ¶
func NewPBKDF2WithSHA512() *PBKDF2Crypto
NewPBKDF2WithSHA512 创建使用 SHA512 的 PBKDF2 加密器
func (*PBKDF2Crypto) Encrypt ¶
func (p *PBKDF2Crypto) Encrypt(password string) (string, error)
Encrypt 实现密码加密
func (*PBKDF2Crypto) Verify ¶
func (p *PBKDF2Crypto) Verify(password, encrypted string) error
Verify 验证密码
type RSACrypto ¶
type RSACrypto struct {
// contains filtered or unexported fields
}
RSACrypto 实现 RSA 加密和解密
func NewRSACrypto ¶
NewRSACrypto 创建一个新的 RSACrypto 实例
func NewRSACryptoFromPrivateKeyPEM ¶
NewRSACryptoFromPrivateKeyPEM 根据 PEM 私钥创建 RSACrypto 实例。
func NewRSACryptoFromPublicKeyPEM ¶
NewRSACryptoFromPublicKeyPEM 根据 PEM 公钥创建 RSACrypto 实例。
func (*RSACrypto) DecryptBytes ¶
DecryptBytes 使用私钥解密 base64 密文,并返回原始二进制数据。
func (*RSACrypto) EncryptBytes ¶
EncryptBytes 使用公钥加密二进制数据,并返回 base64 密文。
func (*RSACrypto) ExportPrivateKey ¶
ExportPrivateKey 导出私钥为 PEM 格式
func (*RSACrypto) ExportPrivateKeyPKCS8 ¶
ExportPrivateKeyPKCS8 导出 PKCS#8 私钥为 PEM 格式。
func (*RSACrypto) ExportPublicKey ¶
ExportPublicKey 导出公钥为 PEM 格式
func (*RSACrypto) ExportPublicKeyPKIX ¶
ExportPublicKeyPKIX 导出 PKIX 公钥为 PEM 格式。