我正在使用jpbc java库来实现HIBE加密,以便加密和解密String数据。
在这种情况下,我发现了一个函数,它允许我从字符串中获取一个元素,如下所示,它使我能够加密&解密这个元素:
private static void elementFromString(Element h, String s) throws NoSuchAlgorithmException
{
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(s.getBytes());
h.setFromHash(digest, 0, digest.length);
}
但是现在,我需要一个解决方案,在解密后从Element获取字符串数据或任何其他想法可以帮助我。
谢谢
答案 0 :(得分:0)
哈希不加密。 SHA-1是一个单向函数,即您可以猜测给定输出的输入,但您无法通过任何计算检索输入。
要加密和解密,您需要一个密码。密码通常由分组密码和诸如"AES/GCM/NoPadding"
的操作模式组成。有点令人惊讶,它由Java Cipher
类表示。
您可能需要生成密钥或密钥对并将其存储在某个位置,例如KeyStore
。
尝试执行加密而不了解您正在做什么可能会导致代码运行 - 最终。但是,它安全的可能性很小。首先尝试了解这个主题。
请注意,在String上调用getBytes
会导致特定于平台的编码。如果您将来切换平台,这可能很有趣。明确指定UTF-8是个好主意。