标签:color javascrip 要求 sha1 数字 分享图片 obj 技术分享 地方
加密算法分为两大类:1.对称加密算法;2.非对称加密算法。
密钥个数 | 加密 | 解密 | |
---|---|---|---|
对称加密 | 一个 | 使用密钥加密 | 使用同一个密钥解密 |
非对称加密 | 两个,公钥和私钥 | 使用其中一把密钥加密 | 使用另外一把密钥解密 |
RSA是一个能够同时用于加密和数字签名的算法,典型的应用场景:隐藏原文、防止原文被篡改、身份认证。隐藏原文是所有加密算法的通用功能(要不然怎么叫加密),防止原文被篡改是数字签名的功能,数据传输的具体流程如下:
RSA对一次加密的明文的长度是有要求的,在不同的padding模式下,能加密的明文长度也不相同。以RSA 1024为例,输入的明文的字节数不能超过钥模长1024bits,即最长为128bytes。RSA 1024的不同padding模式下的明文长度的最大值计算公式:
数字签名是一份数据经过特定的算法计算后得出的特殊标识,用来防止数据在传输过程中被伪造或篡改,是非对称加密技术与数字摘要技术的综合应用。
数字摘要算法具有以下重要特性:
非对称加密技术能够确保只有持有密钥对的双方才能获取到正确的数据,但对加密原文的长度有限制,而数字摘要算法能够将输入数据转换为固定长度的摘要,并保证在原数据不变的情况下,摘要计算结果是一致的。这两项技术的特性的结合,就形成了数字签名的经典应用场景:
RSA和数字签名在Https协议通信中有经典的应用,这里不再赘述。
在开放平台中,RSA和数字签名多用于开发者接入的身份验证。
独立开发者接入平台时,使用RSA算法作为开发者身份验证的核心算法,如云信通IM平台即使用此种模式。开发者接入平台时,需要如下几个步骤:
SHA1哈希算法生成数字签名也被应用于独立开发者接入模式,如融云开放平台、网易云信就使用此模式。开发者接入平台时,需要如下几个步骤:
在所有平台服务端 API 接口的请求中,都需要附带以下4个HTTP Request Header:
| 名称| 类型 | 说明 |
| AppKey | String | 平台分配的 App Key |
| Nonce| String | 随机数,长度无限制 |
| Timestamp | String | 时间戳 |
| Signature | String | 数字签名 |
这种开发者接入模式中,数字签名起到几个作用:
SHA1没有明文长度的限制,这也是其比RSA算法有优势的地方,但SHA1算法是摘要算法,其计算出来的结果是无法解密的。
标签:color javascrip 要求 sha1 数字 分享图片 obj 技术分享 地方
原文地址:https://www.cnblogs.com/colder/p/10326357.html