我使用的是Jboss中的login-module。它必须对用户输入的密码进行编码,并与db中的加密密码进行比较。
<module-option name="hashAlgorithm" value="MD5"/>
<module-option name="hashEncoding" value="base64"/>要将密码存储在db中,请使用以下行
newUser.setPassword(DatatypeConverter.printBase64Binary(purePassword.getBytes("UTF-8")));当我调试应用程序时,它会显示:
MTIzNDU2Nzg=加密密码JdVa0oOqQAr0ZMdtcTwHrQ==问题
base64算法和何时使用md5hashAlgorithm和hashEncoding有什么区别?发布于 2016-07-13 12:08:58
MD5是哈希算法,Base64是输出字符编码。
字符编码定义了与字节或字节序列对应的字符。
MD5是一种加密哈希算法,它产生一个8位字节的16字节输出,而不是字符.并不是所有的8位字节都是可打印字符.
Base64接受一个字节数组并生成一个可打印的字符串。通常使用的是需要将字节数组编码为可打印字符串的数组。
有些哈希函数允许指定哈希算法hashAlgorithm,如MD5、SHA1、SHA-256等,这些哈希算法用于散列输出编码hashEncoding,如十六进制或Base64。这允许一个函数调用在一个调用中使用所选的哈希算法对输入进行散列处理,并选择输出编码。
https://stackoverflow.com/questions/38329718
复制相似问题