thinkoner/openssl 可支持 ECB、CBC等

最后更新于:2022-04-02 02:40:21

[TOC] > [参考](https://github.com/thinkoner/openssl) ## 安装 ``` go get -u github.com/forgoer/openssl ``` ## 使用 #### AES 按键长度可为16/24/32字符(128/192/256位) #### AES-ECB ``` src := []byte("123456") key := []byte("1234567890123456") dst , _ := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING) fmt.Printf(base64.StdEncoding.EncodeToString(dst)) // yXVUkR45PFz0UfpbDB8/ew== dst , _ = openssl.AesECBDecrypt(dst, key, openssl.PKCS7_PADDING) fmt.Println(string(dst)) // 123456 ``` #### AES-CBC ``` src := []byte("123456") key := []byte("1234567890123456") iv := []byte("1234567890123456") dst , _ := openssl.AesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) fmt.Println(base64.StdEncoding.EncodeToString(dst)) // 1jdzWuniG6UMtoa3T6uNLA== dst , _ = openssl.AesCBCDecrypt(dst, key, iv, openssl.PKCS7_PADDING) fmt.Println(string(dst)) // 123456 ``` ### DES 键的长度必须是8个字符(64位 #### DES-ECB ``` openssl.DesECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.DesECBDecrypt(src, key, openssl.PKCS7_PADDING) ``` #### DES-CBC ``` openssl.DesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.DesCBCDecrypt(src, key, iv, openssl.PKCS7_PADDING) ``` ### 3DES 键的长度必须是24个字符(192位).. #### 3DES-ECB ``` openssl.Des3ECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.Des3ECBDecrypt(src, key, openssl.PKCS7_PADDING) ``` #### 3DES-CBC ``` openssl.Des3CBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.Des3CBCDecrypt(src, key, iv, openssl.PKCS7_PADDING) ```
';