zoukankan      html  css  js  c++  java
  • SCryptPasswordEncoder 单向加密 --- 心得

    1.前言

    * BCryptPasswordEncoder相关知识:
    * 用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密。
    * 特定字符串是程序代码中固定的,salt是每个密码单独随机,一般给用户表加一个字段单独存储,比较麻烦。
    * BCrypt算法将salt随机并混入最终加密后的密码,验证时也无需单独提供之前的salt,从而无需单独处理salt问题。
    *
    与他类似的 加密方法还有 SCryptPasswordEncoder 等

    出现问题  :  报错  java.lang.NoClassDefFoundError: org/bouncycastle/crypto/generators/SCrypt

    2.解决

    需要导入依赖包即可

            <!-- SCryptPasswordEncoder 加密需要使用-->
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>1.64</version>
            </dependency>

    3.加密测试【因为是单向加密,故无法解密,只能使用内置的方法比较】

    import org.junit.Test;
    
    import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
    
    public class t {
        @Test
        public void t2(){
        //加密
        String s = (new SCryptPasswordEncoder()).encode("11");
        System.out.println(s);
        //字符长度
        System.out.println(s.length());
        //解密
        if ((new SCryptPasswordEncoder()).matches("11",s)){
         System.out.println("密码一样");
        }else {
         System.out.println("密码不一样");
        }
     } }

    运行结果 ,【 长度140】

    4.其他

    其他类似 SCryptPasswordEncoder 的加密方式还有 

    • BCryptPasswordEncoder【一样的用法 ,长度60,推荐使用】
    • Pbkdf2PasswordEncoder 【一样的用法 ,长度80】
    • StandardPasswordEncoder 【一样的用法 ,长度80,这个已被淘汰,但是还能用,不建议使用】

    分别需要的包

    import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
    import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
    import org.springframework.security.crypto.password.StandardPasswordEncoder;
  • 相关阅读:
    利用Selenium自动化web测试
    【译】.NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱
    SlickGrid example 8:折线图
    SlickGrid example 7:鼠标事件
    SlickGrid example 6:Ajax加载
    SlickGrid example 5:带子项的展开收缩
    SlickGrid example 4: 过滤
    CentOS下配置iptables防火墙 linux NAT(iptables)配置
    ntp server
    parted
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/13033193.html
Copyright © 2011-2022 走看看