JAVA中的密码器用于获取给定纯文本的密码文本。话虽如此,javax.crypto.NullCipher真正需要的是什么。
根据Oracle,(https://docs.oracle.com/javase/8/docs/api/javax/crypto/NullCipher.html) NullCipher类是一个提供“身份密码”的类--一个不转换纯文本的类。因此,密文与明文完全相同。
然后只想了解NullCipher类的真正需求是什么,以及它的用例是什么?
发布于 2020-04-28 01:01:17
NullCipher确实对测试很有用。例如,它可以用于实现具有类似用途的TLS_RSA_PSK_WITH_NULL_SHA密码套件。因此,您将保留所有代码--包括IV生成、Cipher实例等,但只需关闭加密和保密,其余的-记录解析、握手、实体身份验证和消息完整性-保持不变。
可以通过这种方式检测传输或中间编码/解码错误。如果明文在NullCipher中无法存活,那么问题显然不是解密。不过,请注意,1字节的块大小可能会隐藏块大小为8字节(3 AES)或16字节(AES)的密码器的错误。换句话说,NullCipher充当流密码。这并不奇怪:它只是返回明文--不需要任何块。
对于非调试版本,应该注意删除、禁用或至少在默认情况下不启用这些功能。请注意,NullCipher仍将创建数据的副本。因此,我希望而不是在发布版本中使用它来实现加密/不加密之间的选择。
https://stackoverflow.com/questions/61458195
复制相似问题