java - Java 中 PHP 的 crypt 函数的等价物

标签 java php encryption

我正在将我的 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/

相关文章:

php - 使用基于浏览器的 YouTube API 客户端身份验证时,oauth2 的重定向 URI 片段中有额外的字段

java - 下载并解密存储桶中的加密 AWS CloudTrail 日志

java - Hibernate:为列表中的同一对象引用生成不同(唯一)ID

java - 为什么我的类没有重新加载?

php - CSV导入功能在插入mysql数据库时添加前面的双引号

java - Eclipse 和 JAR 中的不同 AES 加密

php - 在数据库中存储数据的安全方法

使用 for 循环的 Java 方法

java - 将android项目添加到git

php - 查询6个不同列的6个数字的所有组合sql