用java编码(js到java)



我有一段js代码,我需要将其转换为合适的java代码,以便在我的Android应用程序中使用:

toHex(Crypto.util.bytesToBase64(Crypto.SHA1(password, { asBytes: true })));

我发现对于Crypto.util.bytesToBase64()方法,我可以使用java版本:Base64.encode(),但我不知道如何在java中调用js CryptoSHA1()toHex()方法。有什么想法吗?

代码使用三个函数:

  1. SHA-1摘要

    MessageDigest md=MessageDigest.getInstance("SHA-1");byte[]摘要=md.digest(text.getBytes("UTF-8"));

  2. 基本64

    String base64=android.util.base64.encodeToString(摘要)

  3. 十六进制

使用这样的函数:http://vinnysoft.blogspot.de/2010/11/code-snippet-to-convert-string-to-hex.html

总之,最后一步完全没有必要,只会破坏数据。base64的结果已经是可打印的ASCII字符串。

此外,使用SHA-1散列密码可能不安全,这取决于您对结果的处理方式。通常,密码哈希应该始终包含salting。

最新更新