我们需要读取文件内容并将其转换为SHA256,然后将其转换为Base64。
任何指针或示例代码都足够了,因为我是这种加密机制的新手。
提前致谢。
答案 0 :(得分:5)
使用Java 8:
public static String fileSha256ToBase64(File file) throws NoSuchAlgorithmException, IOException {
byte[] data = Files.readAllBytes(file.toPath());
MessageDigest digester = MessageDigest.getInstance("SHA-256");
digester.update(data);
return Base64.getEncoder().encodeToString(digester.digest());
}
BTW:SHA256不是加密,它是哈希。哈希不需要密钥,加密也是如此。加密可以反转(使用密钥),哈希不能。更多关于维基百科:https://en.wikipedia.org/wiki/Hash_function
答案 1 :(得分:1)
您可以使用MessageDigest
转换为SHA256,使用Base64
将其转换为Base64:
public static String encode(final String clearText) throws NoSuchAlgorithmException {
return new String(
Base64.getEncoder().encode(MessageDigest.getInstance("SHA-256").digest(clearText.getBytes(StandardCharsets.UTF_8))));
}