java - 如何在 Python 中实现将数据编码为 MD5 字符串的算法?

标签 java python

我对Python不熟悉。我有一个 java 片段来实现将数据编码为 MD5 字符串的算法。我想把它转换成Python。我的java代码使用commons-codec1.9来encodeBase64。 有人可以帮忙吗?非常感谢。

 public static void Main(args){
 String data ="token=cd264af2fbd&app_key=060176144a&client_os_type=4";
 String key = "87483ik98abh";
 String md5EncodedData = getEncodeData(data, key);

}

private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
public String getEncodeData(String app_secret, String data){
    try{
        byte[] hmc = calculateRFC2104HMAC(Base64.encodeBase64(data.getBytes()), app_secret);
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] thedigest = md.digest(hmc);
        return new String(Hex.encodeHex(thedigest));

    }catch (Exception ex){
        System.out.print(ex.getMessage().toString());
    }
    return "";
}
public static byte[] calculateRFC2104HMAC(byte[] data, String key)
        throws java.security.SignatureException
{
    try {

        // get an hmac_sha1 key from the raw key bytes
        SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);

        // get an hmac_sha1 Mac instance and initialize with the signing key
        Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
        mac.init(signingKey);

        // compute the hmac on input data bytes
        byte[] rawHmac = mac.doFinal(data);
        return rawHmac;

    } catch (Exception e) {
        throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
    }
}

最佳答案

关于java - 如何在 Python 中实现将数据编码为 MD5 字符串的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37313342/

相关文章:

java - 更改 ViewPager 内显示的 fragment

java - Web 服务的身份验证

python - 如何将图像张量保存为 PNG?

python - pandas:根据时间序列数据中的索引查找最新值

python - Pandas fillna 使用 groupby

java - 查询返回行数,包括已删除的行数,

java - 在 selenium web 驱动程序中迭代具有相同名称的元素时索引超出范围异常

java - Android 中记事本的位置

python - 为什么 PyCharm 建议我将列表转换为集合?

python - Django:自定义http header 身份验证