我制作哈希算法,消息块为512位。
在C/C++
我可以存储在char[64]
中,但Java
char
占用2个字节。
问题:512位信息是char[32]
还是char[64]
?
答案 0 :(得分:6)
Char是16位的Java。因此char [32]应该足够512位。 我认为使用byte [64]更好,因为每个人都知道一个字节是8位而char [32]使代码更难读。你也不存储字符而是存储位。
答案 1 :(得分:1)
char :char数据类型是一个16位Unicode字符。它的最小值为'\ u0000'(或0),最大值为'\ uffff' (或65,535包括在内)。
因此,为了存储512位,你应该有一个大小为32的数组。
答案 2 :(得分:1)
为什么要使用char[]
?
哈希值由byte
组成,因此逻辑选择是使用byte[64]
。
数据类型char
旨在用作字符而不是数字。