首页 > 解决方案 > 在 Vala 语言中有一个类似 `Buffer.BlockCopy` 或 `BitConverter。ToXXXX () || GetBytes`?

问题描述

我是 Vala 的新手,我正在尝试重写我之前用 c# 编写的一些工具。我在 C# 中找不到BitConverter类或Buffer.BlockCopyVala 之类的函数。顺便说一句,vala 有河豚课吗?

Buffer.BlockCopy(stream, offset, workspace, 0, length);

for (int x = 0; x < workspace.length; x += 8)
{
    uint l = BitConverter.ToUInt32(workspace, x + 0);
    uint r = BitConverter.ToUInt32(workspace, x + 4);
    Blowfish_decipher(ref l, ref r);
    Buffer.BlockCopy(BitConverter.GetBytes(l), 0, workspace, x + 0, 4);
    Buffer.BlockCopy(BitConverter.GetBytes(r), 0, workspace, x + 4, 4);
}

标签: c#vala

解决方案


我假设您正在处理某种字节数组。如果是这样,我认为最好的方法是创建一个MemoryInputStream然后使用DataInputStreamMemoryStream来读取特定基本类型中的字节(例如read_int16.

gcrypt 库的Hash实现支持Blowfish


推荐阅读