Blowfish 块大小 64 位 - 当输入不是 64 位的倍数时该怎么办
我正在创建一个应用程序来使用 Blowfish 加密未知长度的字符串。输入可以是任意长度,因此不一定是 8 字节的倍数。
处理这种情况的标准方法是什么?也许用 0 填充字符串的末尾?大概还有更优雅的方式吗?
提前致谢。
I'm creating an application to encrypt a string of unknown length with Blowfish. The input can be of any length, and will therefore not necessarily be a multiple of 8 bytes.
What is the standard method for dealing with this situation? Perhaps fill in the end of the string with 0s? Presumably there's a more elegant way?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有相当多的填充机制(维基百科)可供您选择。这些算法从简单地在末尾附加零到可以验证和/或删除的填充机制有所不同。
或者,您可以使用 OFB 操作模式(维基百科)进行转换将分组密码转换为流密码,并消除填充的要求。
There are quite a number of padding mechanisms (wikipedia) that you can choose from. The algorithms vary from simply appending zeros to the end to a padding mechanism that can be validated and/or removed.
Alternatively, you can use the OFB mode of operation (wikipedia) to convert a block cipher into a stream cipher, and get rid of the requirement for padding.