Golang1.7.3使用标准库的AES加密解密不实用扩展协议
来源:互联网 发布:unity3d实现物体闪烁 编辑:程序博客网 时间:2024/06/06 05:10
package mainimport ( "crypto/aes" "crypto/cipher" "fmt")type tobytes struct { cip cipher.Block pdgtext []byte}func main() { cip, _ := aes.NewCipher([]byte("1234567891234567")) enc := &tobytes{cip: cip, pdgtext: make([]byte, cip.BlockSize())} src := enc.Encrypt([]byte("czxichen")) dst := enc.Decrypt(src) fmt.Println(string(dst))}//使用AES加密文本,加密的文本不能为空func (a *tobytes) Encrypt(src []byte) (dst []byte) { src = a.padding(src) dst = make([]byte, len(src)) var index int = 0 for len(src) > 0 { a.cip.Encrypt(dst[index:index+a.cip.BlockSize()], src) index += a.cip.BlockSize() src = src[a.cip.BlockSize():] } return dst}//使用AES解密文本func (a *tobytes) Decrypt(src []byte) (dst []byte) { if len(src)%a.cip.BlockSize() != 0 { return src } dst = make([]byte, len(src)) var index int = 0 for len(src) > 0 { a.cip.Decrypt(dst[index:index+a.cip.BlockSize()], src) index += a.cip.BlockSize() src = src[a.cip.BlockSize():] } return a.unpadding(dst)}//使用AES加密文本的时候文本必须定长,即必须是16,24,32的整数倍,func (a *tobytes) padding(src []byte) (dst []byte) { pdg := a.cip.BlockSize() - len(src)%a.cip.BlockSize() p := a.pdgtext[:pdg] p[pdg-1] = byte(pdg) return append(src, p...)}//使用AES解密文本,解密收删除padding的文本func (a *tobytes) unpadding(src []byte) (dst []byte) { length := len(src) if length <= 0 { return src } return src[:(length - int(src[length-1]))]}
1 0
- Golang1.7.3使用标准库的AES加密解密不实用扩展协议
- AES加密解密(使用php扩展mcrypt实现AES加密)
- AES加密解密|及Base64的使用
- AES加密解密|及Base64的使用
- AES加密解密|及Base64的使用
- iOS AES加密解密的使用
- AES加密和解密实用版
- Golang1.7.4标准库sql使用
- 前端用CryptoJS类库的AES加密,后端解密不出来
- PHP的AES加密解密
- iOS AES的加密解密
- Java的AES加密解密
- iOS AES的加密解密
- PHP AES的加密解密
- Golang1.7.3简单的rsa加密封装
- 加密解密---------->用新的高级加密标准(AES)保持你的数据安全
- 【java】AES加密解密|及Base64的使用
- 使用AES算法完成对数据的加密和解密
- WPF ScrollViewer嵌套Listbox无法滚动
- stm32 NVIC中断管理实现[直接操作寄存器]
- 第7章 云监控
- Android五种数据存储(数据持久化)方式
- VS2013多工程开发
- Golang1.7.3使用标准库的AES加密解密不实用扩展协议
- 二叉搜索树hdu3791
- 消息队列MassageComponent示例
- iBatis查询复杂集合
- 新建CR
- Visual studio shell 2010中跟踪当前选中的ToolWindow
- php获取ip地址以及ip对应的省市区
- PHP语言特性和各版本的差异
- Dagger2的简单使用