加密算法学习

哈希算法:

哈希算法,是根据设定的哈希函数和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。一般用于快速查找和加密算法。哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。典型的哈希算法包括MD2MD4MD5SHA-1

HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

   基于HMAC - SHA-1AWS数字签名协议的过程:

1.服务器和客户端约定好两个密钥。

2.获取上传至服务器的消息参数,以字母顺序排列、参数之间用&连接,并将两个密钥中的一个连接其中。——保证参数的有序性,以便服务器端认证。

3.将连接好的参数和密钥作为一个参数,和另外一个密钥,进行SHA-1的摘要算法,获取一个认证码HMAC。(摘要算法是不可逆的,只有加密过程)

4.将消息参数,和获得认证码,再加一次密,形成密文传递给服务器。

5.服务器获取密文,进行解密获取参数和认证码。自己按步骤获取自己的认证码,判断认证是否和客户端一致,认证客户端请求。

(消息参数中加入时间信息,防止有恶意者进行重放攻击)。

 

 

 

  

加密:

加密是将在传输或存储期间的明文改为密文,避免非授权的查看或使用。用密码才可以解密。加密是一种算法,即使知道了算法如没有密钥也无法解密。

换位和置换是两种主要的传统编码方法,是组成最简单的密码的基础。不过,计算机的发展也促进了加密机制的发展,我们根据密码算法所使用的加密密钥和解密密钥是否相同、能否由加密过程推导解密过程(或者由解密过程推导出加密过程),可将密码体制分为对称密码体制即加密密钥和解密密钥是相同的(也称单密码体制,秘密密钥密码体制、私钥密码体制或对称密钥密码体制)和非对称密码体制即加密密钥和解密密钥是不相同的(也叫做双钥密码体制、公开密钥密码体制或非对称密钥密码体制)。

对称加密称为密钥加密,速度快,但加密和解密的钥匙是一样的,只有通信双方才能知道密钥。

非对称加密称为公钥加密,算法更加复杂,速度慢,加密和解密钥匙不相同,任何人都可以知道公钥,只有一个人持有私钥可以解密。

数字签名:

数字签名的基础是公钥和私钥的非对称加密,发送者使用私钥加密的消息摘要(签名),接收者使用公钥解密消息摘要以验证签名是否是某个人。

要证明这段数据是你发过来的,并且没有被别人改过,这就需要用到数字签名,首先我们对整个文档进行md5加密得到16个字节,然后把消息摘要和文档发过去,解密者首先对发过来的文档进行解密,解密后得到一个摘要(md5),对接收的文档进行md5加密,得到的md5结果匹配解密后的摘要,如果匹配成功的话证明没有修改过,我们使用Signature进行签名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值