Documentation ¶
Index ¶
- Variables
- func ParsePrivateKey(privatekey []byte) (*rsa.PrivateKey, error)
- func ParseRSAPublicKey(publickey []byte) (*rsa.PublicKey, error)
- func ParseRSAPublicKeyFromCert(certPEM []byte) (*rsa.PublicKey, error)
- func RC4Encrypt(key, src []byte) []byte
- func RSADecryptNoPadding(ciphertext, privateKey []byte) ([]byte, error)
- func RSADecryptOAEP(cipherText, privateKey []byte) ([]byte, error)
- func RSADecryptPKCS1v15(cipherText, privateKey []byte) ([]byte, error)
- func RSAEncryptNoPadding(plaintext, publicKey []byte) ([]byte, error)
- func RSAEncryptOAEP(plainText, publicKey []byte) ([]byte, error)
- func RSAEncryptPKCS1v15(plainText, publicKey []byte) ([]byte, error)
- func RSAPrivateEncrypt(plainText, privateKey []byte) ([]byte, error)
- func RSAPublicDecrypt(cipherText, publicKey []byte) ([]byte, error)
- type AESCipher
- type BlockMode
- type Cipher
- type DESCipher
- type Option
- type PaddingMode
- type TripleDESCipher
Constants ¶
This section is empty.
Variables ¶
var CBC cbc
CBC 密码块链模式(Cipher-block chaining) 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有平文块。 同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。 CBC是最为常用的工作模式。它的主要缺点在于加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍。 加密时,平文中的微小改变会导致其后的全部密文块发生改变,而在解密时,从两个邻接的密文块中即可得到一个平文块。 因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的平文块完全改变和下一个平文块中对应位发生改变, 不会影响到其它平文的内容
var CFB cfb
var CTR ctr
var ECB ecbBlockMode
ECB 电子密码本模式(lectronic codebook) 最简单的模式,也是最不安全的模式。需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密,相同明文会产生同样的密文组。 这会暴露明文数据的格式和统计特征,从而有潜在的安全风险,但是用于短数据(如加密密钥)时非常理想
var GCM gcm
GCM AE,Authenticated Encryption
var OFB ofb
var PKCS7Padding pkcs7Padding
var ZeroPadding zeroPadding
Functions ¶
func ParsePrivateKey ¶
func ParsePrivateKey(privatekey []byte) (*rsa.PrivateKey, error)
func RC4Encrypt ¶
func RSADecryptNoPadding ¶
TODO:RSADecryptNoPadding RSA无填充私钥解密
func RSADecryptOAEP ¶
RSADecryptOAEP RSA私钥解密
func RSADecryptPKCS1v15 ¶
RSADecryptPKCS1v15 RSA私钥解密 支持长文本加密
func RSAEncryptNoPadding ¶
RSAEncryptNoPadding RSA无填充公钥加密
func RSAEncryptOAEP ¶
RSAEncryptOAEP RSA RSAES-OAEP加密方案是RFC3447推荐新应用使用的标准, RSAES-PKCS1-v1_5 是为了与已存在的应用兼容,并且不建议用于新应用。 详细参考:https://www.rfc-editor.org/rfc/rfc3447.html#section-7
func RSAEncryptPKCS1v15 ¶
RSAEncryptPKCS1v15 RSA公钥加密 支持长文本加密
func RSAPrivateEncrypt ¶
RSAPrivateEncrypt RSA私钥加密
func RSAPublicDecrypt ¶
RSAPublicDecrypt RSA公钥解密
Types ¶
type AESCipher ¶
type AESCipher struct {
// contains filtered or unexported fields
}
AESCipher AES Advanced Encryption Standard 支持 ECB、CBC、CFB、CTR、GCM、OFB key 长度 16、24、32 位,即 128、192、256 bit(AES-128、AES-192、AES-256),位数越大安全性越高但加密速度越慢
type Cipher ¶
type Cipher interface { Encrypt(plainTxt []byte) ([]byte, error) Decrypt(cipherTxt []byte) ([]byte, error) }
func NewTripleDES ¶
type Option ¶
type Option func(*cipherConfig)
func WithBlockMode ¶
func WithPaddingMode ¶
func WithPaddingMode(padding PaddingMode) Option
func WithTagSize ¶
type PaddingMode ¶
type TripleDESCipher ¶
type TripleDESCipher struct {
// contains filtered or unexported fields
}