【问题标题】:Java equivalent for PHP pack() functionPHP pack() 函数的 Java 等效项
【发布时间】:2016-08-12 09:18:21
【问题描述】:

我有一个 PHP 函数。此代码用于加密密码

有谁知道我如何用Java代码编写这个。

这是我尝试过的,但没有给出结果。

    byte[] rawSHA = null;
    byte[] base64HexSHA = null;
    MessageDigest md= null;

    try {
        md = MessageDigest.getInstance("MD5");
    } catch (NoSuchAlgorithmException e) {
        LOG.error("Unable to load MD5 Message Digest : " + e.getMessage(), e);
        throw new IllegalStateException("MD5 Message Digest Instance Not Found");
    }


    rawSHA = md.digest(rawText.getBytes("UTF-8"));
    base64HexSHA = Base64.encodeBase64(rawSHA);
    System.out.println("result = "+base64HexSHA );

感谢您的帮助

编辑: 我将它用于 base64 库

import org.apache.tomcat.util.codec.binary.Base64;

【问题讨论】:

  • "但不要给我结果。" - 请详细说明。你尝试了什么,你期待什么,你得到了什么?还请定义您正在使用哪个Base64 类,因为有几个库提供一个。它看起来不像java.util.Base64

标签: java php base64 md5 pack


【解决方案1】:
String someString = "qwe";
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
String checksum = new BigInteger(1, messageDigest.digest(someString.getBytes())).toString(16);
System.out.println(checksum);

希望这会有所帮助.. :)

【讨论】:

  • 我尝试输入 =[12345abc]。这是结果:来自您的代码 [185aef3b1c810799a6be8314abf6512c],来自 [GFrvOxyBB5mmvoMUq/ZRLA] 上方的 php 函数
  • 185aef3b1c810799a6be8314abf6512c 值是正确的 MD5 输入 12345abc。您正在将输出与 MD% 或您的方法 md5_base64($txt) 的返回值进行比较?
  • 是的,这对于 MD5 加密是正确的。但是上面的 php 函数不仅仅是将输入文本加密成 MD5 加密。里面有一个替换字符串和打包函数
【解决方案2】:

我已经解决了这个问题。这可能对其他人有所帮助。

    String ps="tes";
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] encryptedPassword = md.digest(ps.getBytes());
    byte[] encodedBytes = Base64.encodeBase64(encryptedPassword);
    String Str2 = new String(encodedBytes);

给我一​​个结果:

before =tes
after :KLZi2IO212/Zbk3cXpungA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2014-09-08
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多