我正在尝试在数组[0..63,uint8]上执行md5Update但是我得到了
Error: type mismatch: got (MD5Context, array[0..63, uint8], int)
but expected one of:
md5.md5Update(c: var MD5Context, input: cstring, len: int)
它似乎想要一个ctring输入而不是一个缓冲区。那我怎么能对二进制数据执行md5Update()呢? (我最后不想要一个空字符......)
答案 0 :(得分:1)
您可以使用cstring
将缓冲区转换为cast[cstring](addr myBuf)
。请注意,您还必须传递var MD5Context
,这意味着它必须是可变的(在var
中定义或作为var
参数传递)。