BCrypt vue java 使用

BCrypt加密

这个使用还是挺简单,而且每次生成的加密串都是不一致的,但只能是用加密前的密码跟BCrypt加密后的密码进行比较,所以得搭配sha加密或者其他的加密方式,这样库中存储sha加密后的值,然后前端进行sha加密,再将加密后的值通过bcrypt加密,发送到后端,后端通过库中sha加密的值跟前端二次加密后的值进行matches比较,相等就是true。

参考文档

BCrypt加密前后端加密
sha前后端加密

前端使用

我用的vue

1.引入包

安装不上,就强制安装(加个 --force好像就行)

npm i bcryptjs
2.加密使用

就是import模块,登录的方法上加async,方法里面直接一行代码就行,

// 使用 bcrypt.js 进行密码加密
  import bcrypt from 'bcryptjs'; 

const password = ref('')
 const cost = 10; 

  const login = async () => {
    // 前端加密密码
    const hashedPassword = await bcrypt.hash(encryptSHA1(password.value), cost); 

    // 将用户名和加密后的密码发送到后端进行登录验证
    // ...
  }

export const encryptSHA1=(strSrc:any)=> {
  const hash = CryptoJS.SHA1(strSrc);
  return hash.toString();
}

后端加密

1.引入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

2.禁止security拦截请求

不加这个,默认就会拦截所有的请求

@SpringBootApplication(exclude= {SecurityAutoConfiguration.class })

3.登录接口进行比较

后端就是直接拿库中sha加密的值,跟前端传递的值进行比较,至于后端sha咋加密参考上面的文档前后端都有

PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// user.getPassword()是通过查询库中获取的sha加密的值,password是前端传递过来的通过sha加密,再进行BCrypt加密的值
if (!passwordEncoder.matches(user.getPassword(), password)){
                //抛出异常
            }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值