Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AESEncrypt ¶
type AESEncrypt struct {
// contains filtered or unexported fields
}
AESEncrypt AES加密实现
func NewAESWithOption ¶
func NewAESWithOption(key []byte, option AESOption) (*AESEncrypt, error)
NewAESWithOption 创建AES加密实现
func (*AESEncrypt) Decrypt ¶
func (a *AESEncrypt) Decrypt(cipherData []byte) ([]byte, error)
Decrypt 解密数据
func (*AESEncrypt) DecryptBase64 ¶
func (a *AESEncrypt) DecryptBase64(base64CipherData string) (string, error)
DecryptBase64 解密Base64字符串
func (*AESEncrypt) Encrypt ¶
func (a *AESEncrypt) Encrypt(rawData []byte) ([]byte, error)
Encrypt 加密数据
func (*AESEncrypt) EncryptBase64 ¶
func (a *AESEncrypt) EncryptBase64(rawData []byte) (string, error)
EncryptBase64 加密并返回Base64字符串
type AESOption ¶
type AESOption struct {
Mode AESMode // 加密模式
IVCreator IVCreator // IV规则
ResultCreator ResultCreator // 结果返回规则
PaddingCreator PaddingCreator // 填充规则
}
type AppendResultCreator ¶ added in v0.0.53
type AppendResultCreator struct{}
AppendResultCreator IV+密文的拼接方式
func (*AppendResultCreator) CombineResult ¶ added in v0.0.53
func (a *AppendResultCreator) CombineResult(iv, cipherData []byte) []byte
func (*AppendResultCreator) SeparateResult ¶ added in v0.0.53
func (a *AppendResultCreator) SeparateResult(combinedData []byte, ivSize int) (cipherData []byte, err error)
type CryptEncrypt ¶
type CryptEncrypt interface {
// Encrypt 加密
Encrypt(rawData []byte) ([]byte, error)
// EncryptBase64 加密
EncryptBase64(rawData []byte) (string, error)
// Decrypt 解密
Decrypt(cipherData []byte) ([]byte, error)
// DecryptBase64 解密
DecryptBase64(base64CipherData string) (string, error)
}
CryptEncrypt 对称加密通用接口
type IVCreator ¶
type IVCreator interface {
// CreateForEncrypt 加密时创建IV
CreateForEncrypt(key, rawData []byte) ([]byte, error)
// ExtractForDecrypt 解密时提取IV
ExtractForDecrypt(key, cipherData []byte) ([]byte, error)
}
IVCreator IV自定义创建接口
type PaddingCreator ¶
type PaddingCreator interface {
// Pad 填充
Pad(rawData []byte, blockSize int) ([]byte, error)
// UnPad 去除填充
UnPad(paddedData []byte) ([]byte, error)
}
PaddingCreator 填充接口
type Pkcs7PaddingCreator ¶ added in v0.0.53
type Pkcs7PaddingCreator struct{}
Pkcs7PaddingCreator PKCS7填充
type PureResultCreator ¶ added in v0.0.53
type PureResultCreator struct{}
PureResultCreator 纯密文方式(需要外部管理IV)
func (*PureResultCreator) CombineResult ¶ added in v0.0.53
func (p *PureResultCreator) CombineResult(iv, cipherData []byte) []byte
func (*PureResultCreator) SeparateResult ¶ added in v0.0.53
func (p *PureResultCreator) SeparateResult(combinedData []byte, ivSize int) (cipherData []byte, err error)
type RandomGCMNonceCreator ¶ added in v0.0.53
type RandomGCMNonceCreator struct{}
RandomGCMNonceCreator 随机生成GCM nonce (GCM模式使用)
func (*RandomGCMNonceCreator) CreateForEncrypt ¶ added in v0.0.53
func (r *RandomGCMNonceCreator) CreateForEncrypt(key, rawData []byte) ([]byte, error)
func (*RandomGCMNonceCreator) ExtractForDecrypt ¶ added in v0.0.53
func (r *RandomGCMNonceCreator) ExtractForDecrypt(key, cipherData []byte) ([]byte, error)
type RandomIvCreator ¶ added in v0.0.53
type RandomIvCreator struct{}
RandomIvCreator 随机生成IV (CBC模式使用) 改模式需要配合 AppendResultCreator 才能正常使用,解秘时需要解析出iv
func (*RandomIvCreator) CreateForEncrypt ¶ added in v0.0.53
func (r *RandomIvCreator) CreateForEncrypt(key, rawData []byte) ([]byte, error)
func (*RandomIvCreator) ExtractForDecrypt ¶ added in v0.0.53
func (r *RandomIvCreator) ExtractForDecrypt(key, cipherData []byte) ([]byte, error)
Click to show internal directories.
Click to hide internal directories.