我试图将一些代码从PHP移植到java,这一行给我带来了麻烦:
$decrypted = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $encrypted, "ncfb", $iv);
查看密码上的javadoc,没有' ncfb'列出,是伪装ncfb列出的其他模式之一吗?
答案 0 :(得分:3)
来自this answer:
请注意,文档其余部分中的CFB和OFB代表" 8位CFB或OFB"模式。 nOFB和nCFB模式表示n比特OFB / CFB模式,n用于表示算法的块大小。
nCFB:密码反馈模式(以nbit为单位)。 n是算法块的大小。这是从分组密码实现的自同步流密码。此模式在流中运行。
基于this doc,Java中的Blowfish有以下模式(nCFB):
CFB8..CFB64
所以答案是:是的,有些模式相当于伪装的nCFB。