对于Security ,我有两个疑问:
关于第一个疑问,我读了许多教程,发现总是相同的配置(默认)。
@Bean
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}所以,我可以认为这个配置是无状态的吗?我的web服务不需要使用强度和安全的随机方式来生成与默认配置不同的散列吗?
而关于第二个疑问,Bcrypt散列长度总是60吗?那么,在我的数据库中使用CHAR(60)还是二进制(60)比较好呢?
发布于 2016-04-07 18:22:38
Security是开源的。这是源代码的BCryptPasswordEncoder
如果您不传入一个SecureRandom,它只会创建一个新的。从安全的角度来看,这很好。出于性能或测试能力的原因,您可以通过自己的考试。
如果您不传入Strength,它使用的是GENSALT_DEFAULT_LOG2_ROUNDS,它是10,这是相当安全的。你可以通过这种价值来换取心灵的安宁。
Security的数据库模式为password列提供了一个password,但是对于bcrypt来说,它看起来是正确的。
我会使用char/varchar而不是binary,因为它更容易阅读(直观)。
https://stackoverflow.com/questions/36478095
复制相似问题