如果 .NET 框架仅提供来自 BitConverter 类的函数/方法,该类仅以正确请求的字节序显式返回字节数组,那就太好了。
我已经在其他代码中完成了一些类似的功能,但是有没有更短更直接的方法?(效率是关键,因为这个概念在各种加密和密码派生上下文中使用 TON,包括 PBKDF2、Skein、HMAC、BLAKE2、AES 等)
// convert an unsigned int into an array of bytes BIG ENDIEN
// per the spec section 5.2 step 3 for PBKDF2 RFC2898
static internal byte[] IntToBytes(uint i)
{
byte[] bytes = BitConverter.GetBytes(i);
if (!BitConverter.IsLittleEndian)
{
return bytes;
}
else
{
Array.Reverse(bytes);
return bytes;
}
}
我也看到其他人在这个问题上苦苦挣扎,我还没有看到一个好的答案:( 如何处理'Endianness'