symmetric

package
v0.0.53 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2025 License: Apache-2.0 Imports: 9 Imported by: 0

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 NewAES

func NewAES(key []byte) (*AESEncrypt, error)

NewAES 创建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 AESMode added in v0.0.53

type AESMode int
const (
	AESModeCBC AESMode = iota
	AESModeGCM
)

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填充

func (*Pkcs7PaddingCreator) Pad added in v0.0.53

func (p *Pkcs7PaddingCreator) Pad(rawData []byte, blockSize int) ([]byte, error)

func (*Pkcs7PaddingCreator) UnPad added in v0.0.53

func (p *Pkcs7PaddingCreator) UnPad(paddedData []byte) ([]byte, error)

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)

type ResultCreator

type ResultCreator interface {
	// CombineResult 加密时组合IV和密文
	CombineResult(iv, cipherData []byte) []byte
	// SeparateResult 解密时分离IV和密文
	SeparateResult(combinedData []byte, ivSize int) (cipherData []byte, err error)
}

ResultCreator 加密块的结果处理

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL