Browsed by
标签:golang与java

Go加密解密之AES

Go加密解密之AES

一、AES简介 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,这个标准用来替代原先的DES。AES加密数据块分组长度必须为128bit,密钥长度可以是128bit、192bit、256bit中的任意一个。 AES也是对称加密算法。关于该算法的更多信息可以参考 http://baike.baidu.com/view/2310288.htm 二、Go AES加密解密 学会了DES加密后,AES加密相当简单。除了第一步,将crypto/des包换为crypto/aes外,其他几乎一样。当然,需要注意的是密钥长度和iv的长度。 DES中blocksize是8byte,AES中则是16byte(128bit)。 AES包中,使用函数func NewCipher(key []byte) (cipher.Block, error)…

阅读全文 阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有人评分,赶紧评一下)
Loading...
Go加密解密之DES

Go加密解密之DES

接着RSA加密解密,我们继续来看看DES的加密解密 一、DES简介 DES(Data Encryption Standard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES 的常见变体是三重 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。 DES加密,涉及到加密模式和填充方式,所以,和其他语言加解密时,应该约定好加密模式和填充方式。(模式定义了Cipher如何应用…

阅读全文 阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有人评分,赶紧评一下)
Loading...
Go加密解密之RSA

Go加密解密之RSA

安全总是很重要的,各个语言对于通用的加密算法都会有实现。前段时间,用Go实现了RSA和DES的加密解密,在这分享一下。(对于RSA和DES加密算法本身,请查阅相关资料) 在PHP中,很多功能经常是一个函数解决;而Go中的却不是。本文会通过PHP加密,Go解密;Go加密,PHP解密来学习Go的RSA和DES相关的API。 该文讨论Go RSA加密解密。所有操作在linux下完成。 一、概要 这是一个非对称加密算法,一般通过公钥加密,私钥解密。 在加解密过程中,使用openssl生产密钥。执行如下操作: 1)创建私钥: openssl genrsa -out private.pem 1024 //密钥长度,1024觉得不够安全的话可以用2048,但是代价也相应增大 2)创建公钥: openssl rsa -in private.pem -pubout -out public.pem 这样便生产…

阅读全文 阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有人评分,赶紧评一下)
Loading...