gpt4 book ai didi

java - 哈希算法和哈希编码

转载 作者:行者123 更新时间:2023-11-30 10:41:55 29 4
gpt4 key购买 nike

我在 Jboss login-module 中使用构建。它必须将用户输入的内容编码为密码,并与 db 中的加密密码进行比较。

<module-option name="hashAlgorithm" value="MD5"/>
<module-option name="hashEncoding" value="base64"/>

为了在数据库中存储密码,我使用以下行

newUser.setPassword(DatatypeConverter.printBase64Binary(purePassword.getBytes("UTF-8")));

当我调试我的应用程序时,它出现:

  • 来自 DB 的加密密码 = MTIzNDU2Nzg=
  • 加密密码来自用户登录 = JdVa0oOqQAr0ZMdtcTwHrQ==

问题:

  1. 发生了什么事? jboss什么时候用base64算法,什么时候用md5
  2. hashAlgorithmhashEncoding 有什么区别?

最佳答案

  1. 发生了什么事? jboss什么时候用base64算法,什么时候用md5

MD5是哈希算法,Base64是输出字符编码。

A character encoding是什么定义了哪些字符对应于一个字节或一系列字节。

MD5是一种加密哈希算法,它产生 8 位字节而不是字符的 16 字节输出。并非所有 8 位字节都是可打印字符。

Base64接受字节数组并生成可打印的字符串。一般用于需要将字节数组编码为可打印的字符串。

  1. hashAlgorithm 和 hashEncoding 有什么区别?

某些散列函数允许指定散列算法hashAlgorithm,例如MD5、SHA1、SHA-256等,用于散列输出编码hashEncoding,例如十六进制或 Base64。这允许一次函数调用在一次调用中使用选定的哈希算法和选定的输出编码对输入进行哈希处理。

关于java - 哈希算法和哈希编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38329718/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com