会员基础课程01-加密与鉴权.docxVIP

会员基础课程01-加密与鉴权.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
会员基础课程01-加密与鉴权 加密 1.1、不可逆加密(Hash加密算法/散列算法/摘要算法) 哈希算法,又称摘要算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串,算法不可逆。 常见的哈希算法:MD5、SHA1、SHA256 特征:加密后不能反解,相同的算法对同意明文只会生成唯一的密文。 用途: 文件正确性校验:例如下载文件的hash校验,快速检查文件的正确性和完整性。 用户敏感信息储存:例如URS的密码储存和传输均为SHA256。服务端只储存加密后的字符串,对用户密码完全无感知,无法通过查询数据库的方式查看用户的密码,实现了对敏感数据的脱敏。 安全性:因为算法的实现原因,哈希算法有着被破解的可能性(资料1)。目前来讲,MD5、SHA1被认为是存在安全隐患的,SHA256是相对安全的。值得一提的是安全性提升的同时牺牲了速度。 哈希加盐:盐(Salt)就是一段随机生成的字符串。将盐和原始数据连接后进行加密就是加盐的过程。 HMAC:它不是散列函数,而是采用散列函数与共享秘钥一起使用的消息身份验证机制。HMAC(资料2)相当于对原文做了两次加盐处理的哈希过程。 1.2、可逆加密-对称加密 对称加密需要准备一个算法和一个秘钥,使用逆算法对加密数据解密。对于数据的加密与解密使用同一个秘钥。 常见的对称加密算法:AES,DES,3DES 特征:使用秘钥对数据进行加密和解密。算法公开,计算量小,加密速度快,加密效率高。一旦秘钥被泄露,加密数据将不再安全。秘钥的长度固定,但有多个长度可以选择。例如AES常见16、24、32字节。(资料4) 用途: 用户敏感信息储存:一些需要解密的敏感数据的传输,例如手机号、身份证等。 大量数据的加密:一些数据量巨大的场景 安全性:随着计算机算力的提升,DES和使用三个相同秘钥的3DES算法被认为不再安全。AES依然存在被破解的可能性,但以目前计算机的算力来看成本及其可怕(资料3)。 模式:对称加密有不同的使用模式,这些模式可以提高安全性。(资料5) 1.3、可逆加密-非对称加密 非对称加密需要准备一个算法和一对秘钥,这对秘钥由有个公钥和一个私钥组成,秘钥对可以有很多对。使用逆算法对加密数据解密。公钥加密的数据只能由私钥解密,私钥加密的数据只能由公钥解密。通常使用公钥加密私钥解密。 常见的非对称加密算法:RSA,DSA 特征:使用时公开公钥,使用公钥加密私钥解密。非对称加密有很好的安全性,但加密和解密的时间长速度慢,只适合少量数据的加密。以RSA为例,秘钥的长度依然是固定可选的,1024bit以下的秘钥被认为是不安全的。作为交换,秘钥长度越长加密解密速度越慢。 用途: 签名和认证:例如https请求中加入鉴权,用于确保数据未被串改或损坏。 数字证书:例如https中使用的证书。 安全性:1024bit以上秘钥长度的RSA被认为是安全的,但随着计算机算力的提升仍然存在被破解的风险。(资料3) 授权与鉴权 2.1、JWT。 JWT(Json web token)是为了在网络应用环境间传递声明而执行的一种基于json的开放标准,一定程度上可以用来替代session。最常见的用途是身份验证。我们常用的google账号第三方登录的token使用的就是JWT。 构成:一个标准的JWT加密后的字串由三个部分构成。这三个部分被用”.”分隔开,其中Header和Payload部分是使用base64url encoding的明文(资料7)。 Header:用于声明算法规则和令牌的类型。 Payload:有效荷载部分,拥有七个默认字段可供选择,也可以自定义私有字段。 Signature:签名部分 JWT的签名过程:签名时需要三部分:Header明文,Payload明文,本地的秘钥。 声明算法方式,例如Header中声明”alg”:”HS256”,那么签名过程将使用HMAC-SHA256的算法进行签名。 使用encodeBase64Url方法对Header和Payload进行处理,并以”.”为间隔拼接两个字符串。encodeBase64Url(header) + '.' + encodeBase64Url(payload)。注意Base64Url方法和Base64并非完全相同的方法。 用Header中声明的算法和准备好的秘钥对拼接后的字符串进行加密。 同样以”.”为间隔,将加密后的字符串拼接到之前拼接的字符串的后面。 JWT的验证过程:验证需要JWT串,本地的秘钥 解除Header部分读取声明 使用Header中声明的算法和本地秘钥对JWT串前两段的部分进行加密。 对比两个签名,如果完全相同则验证通过。 常用的算法: HS256:HMAC with SHA-256 RS256:RSA signature w

文档评论(0)

东山书苑 + 关注
实名认证
文档贡献者

业务以学生学习成长为中心,为外语培训、中小学基础教育、学前教育,提供各种学习资料支持服务。

1亿VIP精品文档

相关文档