SpringSecurity之密码加密问题

SpringSecurity之密码加密问题

密码加密一般分为对称加密非对称加密
像https或其他通信协议就是对称加密
加机密后还需要解密
密码呢一般不要解密
所以从安全性考虑,非对称加密更适合密码

之前的密码加密方案通常是使用MD5加密加盐值的方案
这种方式有一个不好的地方是盐值要存到数据库
或者是使用用户名作为盐值
这种方法可行,但还是麻烦了一点

SpringSecurity提供了一种简单、安全的加密方式
它可以使同样的密码加密后结果都不一样
show code

@Test
void passwordTest() {
    BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
    for (int i = 0; i < 10; i++) {
        System.out.println(encoder.encode("1234"));
    }
}

结果

$2a$10$Ro1JWaAabJ/355x3Xlj.4.XIHe5bL33jmtAzQD0G58bBox.aXQEh2
$2a$10$znsSfP4ocLATa44I0Hw6SeJn7HB3VwtL7YONa40rCDVwbEl6Ui0My
$2a$10$TKPPtMNZvbtMKqKfgfwr5uJ/D/3Hdq6OezTD.1TjBVZuW4uYmAPPm
$2a$10$UJVGyMP8Q5Fj2UfUUjDIwOjYtIAQ85uMrrEZnnO8Gukk5fNuZ/4ay
$2a$10$6nfgYFqvaPZrlUCkw7Ld4O9GG4Mq6j1GyOfY05FSm5Vs3B0L3rlfC
$2a$10$90t1ZAj0yDQIU.pzE99AKezPqt35lmU4exxjYAnZ/6o2I0XMdZTdS
$2a$10$UnkCyuVa8kJGuRnDQaAQyuFHtniACbs.eM1MzXNuXsQD4qsOLmHYK
$2a$10$4E1zyhla0cih7GTOE8iCWuEMK6u3Oudm6lDiv4N5G6A5i7rFTixgC
$2a$10$KPthJnVogIPtxPJDIzaDg.vYX3c3GLGzfV3KpfxAs5Ek4pCfPHAT6
$2a$10$tqoG9UVU8B0S9ZNaVrNGvOA0UClFjTtyGltGxUILRb6X2/I0htqtK
Last modification:May 3rd, 2020 at 08:44 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment