Searching...

gdes

DES算法。

使用方式:

import "gitee.com/johng/gf/g/crypto/gdes"

关于gdes包中的补位说明: gdes包中补位方式支持:PKCS5PADDING、NOPADDING两种方式,当使用NOPADDING方式时需要自定义补位方法。

关于gdes包中的密钥的说明,当使用三倍长的DES算法时,密钥为16字节时,key3等于key1

方法列表:


//单倍长ECB模式的DES加密方法
//key必须为8字节长
func DesECBEncrypt(key []byte, clearText []byte, padding int) ([]byte, error)

//单倍长ECB模式的DES解密方法
func DesECBDecrypt(key []byte, cipherText []byte, padding int) ([]byte, error) 

//三倍长ECB模式的DES加密方法
//key的长度必须是16或24字节长,当key为16字节双倍长的密钥时k3=k1
func TripleDesECBEncrypt(key []byte, clearText []byte, padding int) ( []byte, error)

//三倍长ECB模式的DES解密方法
func TripleDesECBDecrypt(key []byte, cipherText []byte, padding int) ([]byte,  error)

//单倍长CBC模式DES加密方法
func DesCBCEncrypt(key []byte, clearText []byte, iv []byte, padding int) ([]byte, error)

//单倍长CBC模式DES解密方法
func DesCBCDecrypt(key []byte, cipherText []byte, iv []byte, padding int) ([]byte, error)

//三倍长CBC模式DES加密方法
func TripleDesCBCEncrypt(key []byte, clearText []byte, iv []byte, padding int) ([]byte, error)

//三倍长CBC模式DES解密方法
func TripleDesCBCDecrypt(key []byte, cipherText []byte, iv []byte, padding int) ( []byte,  error)