我正在将我的 PHP 代码迁移到 Google App Engine - Java。
所以我需要在 Java 中等效于 PHP 的 crypt 函数,
因为我已经存储了所有注册用户的密码
在我的数据库中使用 crypt。
编辑 1: 这是我用于加密密码的 php 代码:
$password = "test123";
$pwd = crypt($密码,$密码);
echo $密码;
输出是(在 Windows 以及 HostMonser 上基于 linux 的服务器):
temjCCsjBECmU
有人可以给我等效的 java 代码吗?
我尝试了各种排列和组合
MessageDigest 类,但无法正确处理..
编辑 2:
这是我认为可以但没有用的示例代码:
try {
{
String password = "test123";
MessageDigest digest = MessageDigest.getInstance( "MD5" );
byte[] passwordBytes = password.getBytes( );
digest.reset( );
digest.update( passwordBytes );
digest.update( passwordBytes );
byte[] message = digest.digest( );
StringBuffer hexString = new StringBuffer();
for ( int i=0; i < message.length; i++)
{
hexString.append( Integer.toHexString(
0xFF & message[ i ] ) );
}
String encrypted = hexString.toString();
System.out.println(encrypted);
} } catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
最佳答案
这是一个旧线程,但我遇到了同样的问题并找到了不同的解决方案。您可以使用 Apache Commons Codec 中的 UnixCrypt/Md5Crypt 类1.7图书馆。
例如你可以调用
UnixCrypt.crypt(string, salt)
或
Md5Crypt.md5Crypt(byte[], salt)
我没有研究其他加密类型,但我想它们也是其他实用程序。
关于java - Java 中 PHP 的 crypt 函数的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292160/