jdbcRealm允许对十六进制或base64的值进行编码。您需要在领域配置中指定其中之一,并在代码中将字节数组转换为以下格式之一:
base64:
import com.sun.org.apache.xml.internal.security.utils.base64;...byte[] digest = md.digest();System.out.println(base64.enpre(digest));
十六进制:
...byte[] digest = md.digest();StringBuffer sb = new StringBuffer();for (int i = 0; i < digest.length; i++) { String hex = Integer.toHexString(0xff & digest[i]); if (hex.length() == 1) sb.append('0'); sb.append(hex);}System.out.println(sb.toString());顺便说一句,密码字段是varchar(30)类型
您需要增加密码字段的大小。SHA-256 base64和hex值的长度分别为45和64个字符。



