go语言源代码加密 golang 加密算法

go使用des加密DES(Data Encryption Standard)是一种常见的分组加密算法 , 由IBM公司在1971年提出 。它是一种对称加密算法,也就是说它使用同一个密钥来加密和解密数据 。
DES使用一个56位的初始密钥 , 但是这里提供的是一个64位的值,这是因为在硬件实现中每8位可以用于奇偶校验 。可以通过设定8位字符串,由 crypto/des 库的 des.NewCipher(key) 函数生成密钥
DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填充位 。常用的填充算法有 pkcs5,zero 等
golang crypt包的AES加密函数的使用golang AES加密函数的使用
AES: Advanced Encryption Standard
高阶加密标准,是用来代替 老的DES的 。
AES加密算法的加密块必须是16字节(128bit),所以不足部分需要填充 , 常用的填充算法是PKCS7 。
AES加密算法的key可以是16字节(AES128),或者24字节(AES192),或者是32字节(AES256)
ECB:Electronic Codebook Book
CBC:Cipher Block Chaining:这是最常见的块加密实现
CTR:Counter
CFB:Cipher FeedBack
OFB:Output FeedBack
具体的差异我也没去弄明白,知道这么个意思,加密算法稍后差异 。
包括AES,CBC,CTR , OFB,CFB,GCM 。
这其中GCM不需要加密块必须16字节长度,可以是任意长度,其他的都需要16字节对其,所以不足部分都需要补充 。
3.1 AES
3.2 CBC
3.3 CTR
【go语言源代码加密 golang 加密算法】 3.4 OFB
3.5 CFB
3.6 GCM
GCM实现算法不需要pad 。
Go 实现AES-128加密解密 AES算法基于排列和置换运算 。排列是对数据重新进行安排 , 置换是将一个数据单元替换为另一个 。AES 使用几种不同的方法来执行排列和置换运算 。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据 。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据 。通过分组密码返回的加密数据的位数与输入数据相同 。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据 。
加解密流程图:
使用CBC模式+PKCS7 填充方式实现AES的加密和解密
go语言源代码加密的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于golang 加密算法、go语言源代码加密的信息别忘了在本站进行查找喔 。

    推荐阅读