我有一个使用linux上的bcrypt工具加密的文件,我需要用Java解密这个文件。根据我的理解,bcrypt使用某种形式的Blowfish加密,但我不确定如何在Java中配置我的Cipher实例。我目前正在将它配置为Blowfish / ECB / PKCS5Padding,我已经尝试了其他几种变体,而且它本身也只是Blowfish,但没有任何效果。
我已经实现的以下代码已经执行正常但是如果我只是使用bcrypt工具解密输出与我得到的不匹配,我从这段代码中得到的都是乱码:
String result = null;
Cipher cipher = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
SecretKeySpec ks = new SecretKeySpec(key, "Blowfish");
cipher.init(Cipher.DECRYPT_MODE, ks);
if (reader != null)
{
InputStream is = getInputStream(reader);
StringBuilder builder = new StringBuilder();
byte[] bytes = new byte[8];
int off = 0;
while (is.read(bytes, 0, 8) != -1)
{
builder.append(new String(cipher.update(bytes, off, 8), "UTF-8"));
}
result = builder.toString();
}
有没有人有这方面的经验?我通过谷歌进行了广泛的搜索,但却找不到任何可以修复它的内容。