0 java encryption gwt java.security
当我尝试在 java gwt 中编译时,它显示以下问题
注意:使用 gwt 2.0 java 6 (jre 1.6) 的版本也在 1.8 中尝试过
public static String EncryptPassowrd(String password)
{
String encryptedPassword = "";
byte[] actualBytes = password.toString().getBytes();
byte[] newbytes = new byte[actualBytes.length * 2];
for (int i = 0; i < actualBytes.length; i++)
{
newbytes[2 * i] = actualBytes[i];
newbytes[2 * i + 1] = 0;
}
try
{
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.reset();
md.update(newbytes);
byte[] encryptedbytes = md.digest();
for (int i = 0; i < encryptedbytes.length; i++)
{
encryptedPassword = encryptedPassword == "" ? Integer.toString((encryptedbytes[i] & 0xff) + 0x100, 16).substring(1) : encryptedPassword + "-"
+ Integer.toString((encryptedbytes[i] & 0xff) + 0x100, 16).substring(1);
}
return encryptedPassword.toUpperCase();
}
catch (NoSuchAlgorithmException e)
{
// Do Nothing
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
java.security 不包含在 GWT 模拟的 Java 运行时库的子集中,正如已经提到的。
尽管您可以使用 GWT-Crypto 绕过它,但密码加密并不安全,尤其是在客户端 - 检查GWT-Crypto 自己的 wiki。相反,纯文本密码应通过加密通道 (SSL) 发送并在服务器上安全处理(例如,使用 bcrypt 散列)。由于散列函数是单向函数,因此您将无法“解密”散列。为了验证您的用户,您可以再次通过散列函数运行密码,以便与存储在数据库中的散列进行比较。
归档时间: |
|
查看次数: |
102 次 |
最近记录: |