项目里面常用的加密方式base64 AES MD5 sha1

今天重新整理了一遍以前项目中经常用到过的几种加密的方式,发现以前其实对这几种加密的方式理解的不是特别的深刻首先从加密的本质是来看,是把一些不定长度的数据按照一定的编码规则输出为一种一定长度的数据串。这个是我理解的加密,其中不同的加密手段采用不同的编码规则。阅读之前先了解一些基本的概念:
1.简单的概念
明文:加密前的信息
密文:机密后的信息
算法:加密或解密的算法

密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao)

2.简单的例子
将123456每位数字都加1后得到234567,
其中123456就是明文,234567就是密文,加密密钥就是1,加密算法是每位加

3.对称加密和非对称加密
以上为例,
123456-->234567的加密密钥就是1,加密算法是每位+
234567-->123456的解密密钥也是1,解密算法是每位-
其中加密算法(+)和解密算法(-)相对称,这种加密算法就称作对称加密,
同样,如果加密算法和解密算法不对称就称之为非对称加密。

4.算法举例
对称加密算法:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,AES算法。
非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC。
经典的哈希算法:MD2、MD4、MD5 和 SHA-1(目的是将任意长输入通过算法变为固定长输出,且保证输入变化一点输出都不同,且不能反向解密)
下面我们说一下我们常用到的加密手段
1.base64,这个加密手段是一些项目里面常用到的,一般采用这种加密手段十分好破解,他的加密实际作用不在于保密,你看看经过BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象。你再仔细研究下EMAIL就会发现其实EMAIL就是用base64编码过后再发送的。然后接收的时候再还原。
还有一种情况下用BASE64编码也很好,比如一个图片文件,或者其他任何二进制文件。我可以把它编码成字符串。这样用XML或者数据库就能直接以文本的方式来存储这些文件了。
下面就说一下他的具体使用了:

首先你要先添加几个文件GTMBase64,这个是第三方的库可以从网络资源中获取,直接调用里面的算法;

2.下面说一下MD5加密的作用和用法
首先要知道MD5加密原理和性质,MD5首先他是一个安全的算列算法,他有两个特点。其一,输入两段明文也就是原始数据,不会得到相同的输出值。
其二,他的过程是不可逆的也就是说根据输出值,是不能得到原始的明文的。所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,然后在所谓的解密的时候,都是通过这个映射表来查找其所对应的原始明文。
而绝对没有一种算法,可以通过输出加密后的散搜索列值算出原始明文。

3.SHA-1与MD5都是摘要算法,且为不可逆算法;
应用角度来讲,适用性比安全性重要,两个算法长度有所不同,SHA-1 160位,MD5 128位。
如果从安全角度,在计算出摘要后,对摘要进行签名,可以增加抗抵赖、防篡改的能力。

4.AES加密算法。
AES是DES的进化版
这个是我目前使用的具有保密性的一个加密算法这个加密的时候需要一个key值解密的时候也要需要同样的key值才可以解密,相当于一个口令。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值