#Encrypt 该repo放着于加密相关的代码实现
encrypt:摘要算法、签名、对称加密、非对称加密
shiro-encrypt:使用shiro提供的api加密用户名密码,在实际使用中,客户端使用公钥对用户的密码进行加密传到服务器,防止client和server传输数据的过程中截获数据获得用户名密码,防止嗅探工具获取用户关键隐私数据,服务端拿到用户数据后根据该用户生成的私钥进行解密。对于密码这样的信息加密后还要和数据库中加密后的密码进行比对。 这里数据库中的密码采用 Hash(Hash(salt+密码明文))....对密码进行多次迭代得到密码密文,迭代次数可以256或者512,根据安全等级进行相应的设置。一方面要考虑安全性,另一方面考虑服务器性能。以SHA-512来说,循环迭代512次也是比较消耗性能的。
在对用户密码进行加解密的时候,要为每个用户生成不同的密钥对,将密钥对放在session中,这个秘钥对的产生根据用户是否需要传送一些蜜柑数据来决定。比如普通用户仅仅是浏览网页,不涉及隐私数据和密码之类的关键信息,那就不必产生密钥对。在用户进行登录或发送敏感数据的时候生成秘钥对,例如当用户跳转到登录页的时候,也就是说用户在很大程度上将要执行登录操作,首先从session获取该用户是否有秘钥对,如果有则返回给用户,如果没有则生成秘钥对。