我使用c++和crypto++库,其中包括用于哈希的keccak算法。我可以找到具有特定哈希值长度的实例。有224,256,384和512位。但是我想用sha3和特定长度d生成散列,例如1024位。这有可能吗?
发布于 2016-09-09 07:43:13
正如您所提到的,Sha3 (也称为Keccak )有4个版本可供使用。然而,FIPS 202也定义了SHAKE128和SHAKE256。
虽然SHA3的四个版本提供了一个固定的输出长度,但是SHA3是一个XOF (eXtendable输出函数),这意味着您有兴趣在您的情况下使用它。
就Crypto++而言,不幸的是,快速查看一下它,我并不认为有一种简单的方法可以让它正常工作。您可以从他们的SHA3类派生出一个基类,但是由于填充规则(如果您想遵循规范),它不会被撼动。
但是,由于C++是C的超集,所以可以使用作者这里提供的C中的握手实现,也可以在更紧凑的这里版本中使用。
https://crypto.stackexchange.com/questions/39858
相似问题