encryptx

package
v1.2.7 Latest Latest
Warning

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

Go to latest
Published: May 24, 2024 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Overview

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 21:23
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:39
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:39
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:01
  • @version 1.0

Index

Constants

View Source
const (
	MODE_KEY_BASE64       MODE_KEY     = 1
	MODE_KEY_HEX_LOWER    MODE_KEY     = 2
	MODE_KEY_HEX_UPPER    MODE_KEY     = 3
	MODE_KEY_STRING       MODE_KEY     = 4
	MODE_ENCODE_BASE64    MODE_ENCODE  = 1
	MODE_ENCODE_HEX_LOWER MODE_ENCODE  = 2
	MODE_ENCODE_HEX_UPPER MODE_ENCODE  = 3
	MODE_PADDING_PKCS7    MODE_PADDING = "pkcs7"
	MODE_PADDING_PKCS5    MODE_PADDING = "pkcs5"
	FILE_BUFFER_SIZE                   = 1024
)

Variables

This section is empty.

Functions

func DecodingToByte

func DecodingToByte(encodeMode MODE_ENCODE, dataStr string) ([]byte, error)

func EncodingToString

func EncodingToString(encodeMode MODE_ENCODE, data []byte) (string, error)

func GenKeyData

func GenKeyData(keyLen int) []byte

func GenKeyString

func GenKeyString(keyMode MODE_KEY, keyLen int) (string, error)

func KeyIVByteToString

func KeyIVByteToString(keyMode MODE_KEY, keyData []byte) (string, error)

func KeyIVStringToByte

func KeyIVStringToByte(keyMode MODE_KEY, keyStr string) ([]byte, error)

func Pkcs5Padding

func Pkcs5Padding(data []byte, blockSize int) []byte

func Pkcs5UnPadding

func Pkcs5UnPadding(decrypted []byte) []byte

*

  • 删除解密后明文的补位字符 *
  • @param decrypted 解密后的明文
  • @return 删除补位字符后的明文

func Pkcs7Byte

func Pkcs7Byte(a int) byte

*

  • 将数字转化成ASCII码对应的字符,用于对明文进行补码 *
  • @param a 需要转化的数字
  • @return 转化得到的字符

func Pkcs7Padding

func Pkcs7Padding(data []byte, blockSize int) []byte

func Pkcs7UnPadding

func Pkcs7UnPadding(decrypted []byte) []byte

*

  • 删除解密后明文的补位字符 *
  • @param decrypted 解密后的明文
  • @return 删除补位字符后的明文

Types

type EncryptHelper

type EncryptHelper interface {
	// key模式
	ModeOfKey() MODE_KEY
	// 字节转字符串编码方案
	ModeOfEncode() MODE_ENCODE
	// Padding的模式
	ModeOfPadding() MODE_PADDING

	// 设置key字节数组
	SetKeyData(key []byte)
	// 设置iv字节数组
	SetIVData(iv []byte)
	// 设置key字符串
	SetKeyString(keyStr string) error
	// 设置iv字符串
	SetIVString(ivStr string) error
	// 获取key字节数组
	GetKeyData() []byte
	// 设置iv字节数组
	GetIVData() []byte
	// 获取key字符串
	GetKeyString() (string, error)
	// 获取iv字符串
	GetIVString() (string, error)
	// 设置Blocksize
	SetBlockSize(blockSize int)
	// 设置BlockSize依据Key长度自动适配
	SetBlockSizeByKey(blockSizeByKey bool)
	// 生成key或iv字节数组
	GenKeyIvData(len int) ([]byte, error)
	// 生成key或iv字符串
	GenKeyIvString(len int) (string, error)

	//// 生成iv字节数组
	//GenIVData() ([]byte, error)
	//// 生成iv字符串
	//GenIVString() (string, error)
	// 还原key或iv字符串为key或iv字节数组
	RestoreKeyIV(keyStr string) ([]byte, error)
	// ECB加密字节数组
	EncDataECB(data []byte) ([]byte, error)
	// CBC加密字节数组
	EncDataCBC(data []byte) ([]byte, error)
	// ECB解密字节数组
	DecDataECB(dataEnc []byte) ([]byte, error)
	// CBC解密字节数组
	DecDataCBC(dataEnc []byte) ([]byte, error)
	// ECB加密字符串
	EncStringECB(str string) (string, error)
	// CBC加密字符串
	EncStringCBC(str string) (string, error)
	// ECB解密字符串
	DecStringECB(strEnc string) (string, error)
	// CBC解密字符串
	DecStringCBC(strEnc string) (string, error)
	// ECB加密字符串
	EncFileECB(fileSrc string, fileEnc string) error
	// CBC加密字符串
	EncFileCBC(fileSrc string, fileEnc string) error
	// ECB解密字符串
	DecFileECB(fileEnc string, fileDest string) error
	// CBC解密字符串
	DecFileCBC(fileEnc string, fileDest string) error
	// Padding&UnPadding
	Padding(data []byte, blockSize int) []byte
	UnPadding(data []byte, blockSize int) []byte
}

type MODE_ENCODE

type MODE_ENCODE int

func ParseEncodeMode

func ParseEncodeMode(encodeMode MODE_ENCODE) MODE_ENCODE

type MODE_KEY

type MODE_KEY int

func ParseKeyMode

func ParseKeyMode(keyMode MODE_KEY) MODE_KEY

type MODE_PADDING

type MODE_PADDING string

func ParsePaddingMode

func ParsePaddingMode(paddingMode MODE_PADDING) MODE_PADDING

type XAes

type XAes struct {
	ModeKey     MODE_KEY
	ModeEncode  MODE_ENCODE
	ModePadding MODE_PADDING
	Key         []byte
	Iv          []byte
	//KeyLen          int
	//IvLen           int
	BlockSize       int
	BlockSizeByKey  bool
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XAes) DecDataCBC

func (x *XAes) DecDataCBC(dataEnc []byte) ([]byte, error)

CBC解密字节数组

func (*XAes) DecDataECB

func (x *XAes) DecDataECB(dataEnc []byte) ([]byte, error)

ECB解密字节数组

func (*XAes) DecFileCBC

func (x *XAes) DecFileCBC(pathEnc string, pathDest string) error

CBC解密字符串

func (*XAes) DecFileECB

func (x *XAes) DecFileECB(pathEnc string, pathDest string) error

ECB解密字符串

func (*XAes) DecStringCBC

func (x *XAes) DecStringCBC(strEnc string) (string, error)

CBC解密字符串

func (*XAes) DecStringECB

func (x *XAes) DecStringECB(strEnc string) (string, error)

ECB解密字符串

func (*XAes) EncDataCBC

func (x *XAes) EncDataCBC(data []byte) ([]byte, error)

CBC加密字节数组

func (*XAes) EncDataECB

func (x *XAes) EncDataECB(data []byte) ([]byte, error)

ECB加密字节数组

func (*XAes) EncFileCBC

func (x *XAes) EncFileCBC(pathSrc string, pathEnc string) error

CBC加密字符串

func (*XAes) EncFileECB

func (x *XAes) EncFileECB(pathSrc string, pathEnc string) error

ECB加密字符串

func (*XAes) EncStringCBC

func (x *XAes) EncStringCBC(str string) (string, error)

CBC加密字符串

func (*XAes) EncStringECB

func (x *XAes) EncStringECB(str string) (string, error)

ECB加密字符串

func (*XAes) GenKeyIvData

func (x *XAes) GenKeyIvData(len int) ([]byte, error)

生成key或iv字节数组

func (*XAes) GenKeyIvString

func (x *XAes) GenKeyIvString(len int) (string, error)

生成key或iv字符串

func (*XAes) GetIVData

func (x *XAes) GetIVData() []byte

设置iv字节数组

func (*XAes) GetIVString

func (x *XAes) GetIVString() (string, error)

获取iv字符串

func (*XAes) GetKeyData

func (x *XAes) GetKeyData() []byte

获取key字节数组

func (*XAes) GetKeyString

func (x *XAes) GetKeyString() (string, error)

获取key字符串

func (*XAes) ModeOfEncode

func (x *XAes) ModeOfEncode() MODE_ENCODE

字节转字符串编码方案

func (*XAes) ModeOfKey

func (x *XAes) ModeOfKey() MODE_KEY

key模式

func (*XAes) ModeOfPadding

func (x *XAes) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XAes) Padding

func (x *XAes) Padding(data []byte, blockSize int) []byte

Padding&UnPadding

func (*XAes) RestoreKeyIV

func (x *XAes) RestoreKeyIV(keyStr string) ([]byte, error)

还原key或iv字符串为key或iv字节数组

func (*XAes) SetBlockSize

func (x *XAes) SetBlockSize(blockSize int)

设置Blocksize

func (*XAes) SetBlockSizeByKey

func (x *XAes) SetBlockSizeByKey(blockSizeByKey bool)

设置BlockSize依据Key长度自动适配

func (*XAes) SetIVData

func (x *XAes) SetIVData(iv []byte)

设置iv字节数组

func (*XAes) SetIVString

func (x *XAes) SetIVString(ivStr string) error

设置iv字符串

func (*XAes) SetKeyData

func (x *XAes) SetKeyData(key []byte)

设置key字节数组

func (*XAes) SetKeyString

func (x *XAes) SetKeyString(keyStr string) error

设置key字符串

func (*XAes) UnPadding

func (x *XAes) UnPadding(data []byte, blockSize int) []byte

Jump to

Keyboard shortcuts

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