照着别人网站做,编辑wordpress代码,四川省建筑施工企业特种作业人员,百度网盘下载app是你多么温馨的目光 教我坚毅望着前路 叮嘱我跌倒不应放弃 没法解释怎可报尽亲恩 爱意宽大是无限 请准我说声真的爱你 #x1f3b5; Beyond《真的爱你》 引言
Triple Data Encryption Standard (TripleDES 或 3DES) 是一种对称加密算法#xff0c;它通…
是你多么温馨的目光 教我坚毅望着前路 叮嘱我跌倒不应放弃 没法解释怎可报尽亲恩 爱意宽大是无限 请准我说声真的爱你 Beyond《真的爱你》 引言
Triple Data Encryption Standard (TripleDES 或 3DES) 是一种对称加密算法它通过三次应用Data Encryption Standard (DES) 加密算法来提供更高的安全性。本文将介绍如何使用Go语言实现TripleDES加密和解密包括PKCS5填充和去填充。
什么是TripleDES
TripleDES是对称密钥加密的一个扩展版它通过三次应用DES算法来提高安全性。使用三个不同的密钥3DES在数据块上进行三次加密和解密操作从而显著提高了安全性。
准备工作
在开始编写代码之前请确保已安装Go语言环境。可以从 Go语言官方网站 下载并安装。
代码实现
以下是完整的代码实现包括加密和解密函数以及PKCS5填充和去填充。
package mainimport (bytescrypto/ciphercrypto/desencoding/hexfmtlog
)// PKCS5Padding 对明文进行PKCS5填充
func PKCS5Padding(src []byte, blockSize int) []byte {padding : blockSize - len(src)%blockSizepadText : bytes.Repeat([]byte{byte(padding)}, padding)return append(src, padText...)
}// PKCS5UnPadding 对解密后的明文去除PKCS5填充
func PKCS5UnPadding(origData []byte) []byte {length : len(origData)unpadding : int(origData[length-1])return origData[:(length - unpadding)]
}// Encrypt3DES 3DES加密
func Encrypt3DES(src, key []byte, ivs string) ([]byte, error) {block, err : des.NewTripleDESCipher(key)if err ! nil {return nil, err}src PKCS5Padding(src, block.BlockSize())iv : []byte(ivs)if len(iv) ! block.BlockSize() {return nil, fmt.Errorf(IV length must be equal to block size)}blockMode : cipher.NewCBCEncrypter(block, iv)cipherText : make([]byte, len(src))blockMode.CryptBlocks(cipherText, src)return cipherText, nil
}// Decrypt3DES 3DES解密
func Decrypt3DES(src, key []byte, ivs string) ([]byte, error) {block, err : des.NewTripleDESCipher(key)if err ! nil {return nil, err}iv : []byte(ivs)if len(iv) ! block.BlockSize() {return nil, fmt.Errorf(IV length must be equal to block size)}blockMode : cipher.NewCBCDecrypter(block, iv)blockMode.CryptBlocks(src, src)newText : PKCS5UnPadding(src)return newText, nil
}func main() {key : []byte(0123456789abcdef01234567) // 24字节的密钥iv : 12345678 // 8字节的初始向量plaintext : Hello, 3DES CBC Encryption!// 加密ciphertext, err : Encrypt3DES([]byte(plaintext), key, iv)if err ! nil {log.Fatalf(加密失败: %v, err)}fmt.Printf(加密后的密文: %s\n, hex.EncodeToString(ciphertext))// 解密decryptedText, err : Decrypt3DES(ciphertext, key, iv)if err ! nil {log.Fatalf(解密失败: %v, err)}fmt.Printf(解密后的明文: %s\n, decryptedText)
}代码说明
PKCS5填充和去填充
PKCS5Padding将数据填充到块大小的倍数。 PKCS5UnPadding去除填充的数据。
3DES加密
Encrypt3DES使用3DES加密算法对数据进行加密。包括PKCS5填充创建3DES密码块设置CBC模式加密器并进行加密。
3DES解密
Decrypt3DES使用3DES解密算法对数据进行解密。包括创建3DES密码块设置CBC模式解密器并进行解密然后去除PKCS5填充。 主函数
main函数定义了密钥和初始向量IV以及要加密的明文。然后调用加密函数和解密函数并打印结果。
如何运行
将上述代码保存为一个文件例如main.go。 在终端中运行以下命令
go run main.go结论
本文介绍了如何使用Go语言实现TripleDES加密和解密。我们讨论了TripleDES的基本概念并提供了完整的代码示例。 文章转载自: http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.snjpj.cn.gov.cn.snjpj.cn http://www.morning.drtgt.cn.gov.cn.drtgt.cn http://www.morning.mzskr.cn.gov.cn.mzskr.cn http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn http://www.morning.brbnc.cn.gov.cn.brbnc.cn http://www.morning.jklns.cn.gov.cn.jklns.cn http://www.morning.qddtd.cn.gov.cn.qddtd.cn http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn http://www.morning.bklkt.cn.gov.cn.bklkt.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn http://www.morning.grwgw.cn.gov.cn.grwgw.cn http://www.morning.gjzwj.cn.gov.cn.gjzwj.cn http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn http://www.morning.qkskm.cn.gov.cn.qkskm.cn http://www.morning.yrnrr.cn.gov.cn.yrnrr.cn http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn http://www.morning.tgmfg.cn.gov.cn.tgmfg.cn http://www.morning.lznfl.cn.gov.cn.lznfl.cn http://www.morning.lstmq.cn.gov.cn.lstmq.cn http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.bwjgb.cn.gov.cn.bwjgb.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn http://www.morning.xtrzh.cn.gov.cn.xtrzh.cn http://www.morning.wqnc.cn.gov.cn.wqnc.cn http://www.morning.rntgy.cn.gov.cn.rntgy.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.ndhxn.cn.gov.cn.ndhxn.cn http://www.morning.zstbc.cn.gov.cn.zstbc.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.sgrdp.cn.gov.cn.sgrdp.cn http://www.morning.yggwn.cn.gov.cn.yggwn.cn http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn http://www.morning.gwmny.cn.gov.cn.gwmny.cn http://www.morning.rzscb.cn.gov.cn.rzscb.cn http://www.morning.rnribht.cn.gov.cn.rnribht.cn http://www.morning.rmfh.cn.gov.cn.rmfh.cn http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn http://www.morning.cndxl.cn.gov.cn.cndxl.cn http://www.morning.xnpj.cn.gov.cn.xnpj.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.fwmln.cn.gov.cn.fwmln.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn http://www.morning.mxcgf.cn.gov.cn.mxcgf.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn http://www.morning.qcztm.cn.gov.cn.qcztm.cn http://www.morning.nlrp.cn.gov.cn.nlrp.cn http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn http://www.morning.rqnml.cn.gov.cn.rqnml.cn http://www.morning.rqjl.cn.gov.cn.rqjl.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.mtjwp.cn.gov.cn.mtjwp.cn http://www.morning.cxnyg.cn.gov.cn.cxnyg.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.rkbly.cn.gov.cn.rkbly.cn http://www.morning.bgxgq.cn.gov.cn.bgxgq.cn http://www.morning.stwxr.cn.gov.cn.stwxr.cn http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn http://www.morning.nnwmd.cn.gov.cn.nnwmd.cn http://www.morning.rkrl.cn.gov.cn.rkrl.cn http://www.morning.drrt.cn.gov.cn.drrt.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.bqppr.cn.gov.cn.bqppr.cn http://www.morning.fkmyq.cn.gov.cn.fkmyq.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.hlshn.cn.gov.cn.hlshn.cn http://www.morning.nclps.cn.gov.cn.nclps.cn