Shiro2-加密

    科技2022-07-12  135

    一、 密码加密-Hash散列算法

    基础的比较流程

    1.1 MD5加密

    md5只执行了加密,没有解密的方法。 网上很多说的md5解密其实就是把常见的字符串解密结果存起来,去进行一个一个的比对,并没有能真正的把md5解密的方法

    盐值加密

    原来的字符串再加一个字符串,把密码的复杂程度再次提高

    迭代次数

    按照md5的算法再算一次,默认就是1次,迭代一次就是2,迭代两次就是3

    1.2 改自定义realm

    这段代码应该是注册时使用,对密码进行加密

    把数据库储存的盐值转换为credentialsSalt类型

    在ini文件里配置盐

    注意这个坑:属性和set方法不一致

    自定义realm里面有个凭证匹配器,凭证匹配器有下面两个属性,盐在自定义realm里写

    1.3 用户表该怎么设计

    迭代次数是配置的,定死的不能变,上线之前要定下来盐值每个人可以不同,随机生成字符串

    如果自己写加密算法,那么迭代次数可以不一样,可以记录在数据库中,这个框架要求迭代次数必须一样

    二、过一遍流程

    注册时经过盐值和迭代次数加密后的密码为credentials,从数据库中取出登录时的密码经过配置文件的MD5和迭代次数的加密,再获得参数credentialsSalt也就是盐值,算出一个加密值最后把这两个值用equals()进行比较

    Processed: 0.016, SQL: 8