问题标签 [unpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
363 浏览

perl - Perl 和解析杂乱的文本

我有以下文字

我有这个代码/子,它获取每一行并假设产生一个相关列表:

我不知道如何从 $rest 中获取数据,我尝试了许多 unpack 的变体,但无济于事,我需要将其存储到一个列表中。忽略'upk_short',它不正确,虽然我尝试了很多其他的,但看起来线条太动态了。

更新:如果有人能找到一种方法来规范化文本会很好,我的意思是对齐所有内容,以便我可以使用 Tom 的方式来解析它。

任何想法?

0 投票
3 回答
979 浏览

perl - 使用 Perls unpack() 验证加盐哈希

我正在尝试使用 Perl 验证加盐密码,但我被 unpack 卡住了。

我有一个加盐哈希密码,例如 SHA256:SSHA256 = SHA256('password' + 'salt') + 'salt' Base64 编码得到' {SSHA256}eje4XIkY6sGakInA+loqtNzj+QUo3N7sEIsj3fNge5lzYWx0'。

我将此字符串存储在我的用户数据库中。当用户登录时,需要将盐与哈希分开,以使用盐对提供的密码进行哈希处理,并将结果与​​从数据库中检索到的结果进行比较。这就是我卡住的地方。我似乎没有正确的解包模板将哈希(8 位二进制,固定长度,在本例中为 32 字节)与盐(8 位二进制,可变长度)分开。

我尝试过类似
my ($hash, $salt) = unpack('N32 N*', $data);
的方法,但似乎没有成功。

我的问题是:我怎样才能解压这个哈希(在它被 Base64 解码之后)以获得一个固定长度的哈希和另一个变量中的可变长度盐?

0 投票
2 回答
1358 浏览

archive - 通用归档解包器库

许多防病毒软件可以解压缩用户硬盘上的大多数档案。他们剖析了.zip, .rar, .chm, .exe, .msi(和其他安装程序)等等。他们也可以解压可执行文件(从他们那里获取资源,解压打包的可执行文件和解压 SFX 档案)。

例如,流行的旧俄罗斯杀毒软件“Drweb”支持多种存档格式:

Dr.Web 知道许多类型的档案。目前它们是:ZIP、7ZIP、ARJ、RAR、LHA、HA、GZIP、TAR、BZIP2、MS CAB、WISE、MSI、ISO、CPIO、RPM、DEB

是否有允许我解压大多数档案的库或实用程序?

是否有像防病毒软件那样解压缩可执行文件的库?

0 投票
1 回答
857 浏览

perl - 打包/解包 - 小端 - 64位 - 问题

我如何从打包/解包中获取

这样的输出?

0 投票
0 回答
932 浏览

ruby - 红宝石中的128位长双打?

在我的 ruby​​ 代码中,我正在与一个服务器对话,该服务器以二进制格式的字符串形式响应 128 位长双精度(“128 位长双精度”、“binary128”或“四倍精度浮点”)。

有没有办法解压缩这些字符串以在 ruby​​ 中使用?根据String.unpack上的文档,最大精度似乎是两倍。是否有可能在 ruby​​ 中表示这些 128 位浮点数?

0 投票
5 回答
4387 浏览

c - 从 Ruby 确定 sizeof( double ) 和 sizeof( int ) 的最简单方法是什么?

为了使用 Ruby 的String.unpack 解压缩具有混合双精度和整数的复杂二进制字符串,我需要确定二进制字符串中的偏移量。通常,双精度数是 8 个字节,整数是 4 个字节,但为了使我的代码与机器无关,我想从我的 Ruby 代码中查询这些大小。

从 Ruby 中确定整数和双精度的大小的最简单方法是什么,即请求对 Csizeof( type )方法的请求响应?

0 投票
2 回答
1148 浏览

perl - 如何以十六进制格式从 unpack 中获取校验和?

我一直试图弄清楚 Perl 中的unpack函数,但不能完全弄清楚整个事情。

我有:一个字符串和一个 16 位十六进制校验和(例如"this is my string""0671"

我需要检查是否"this is my string"等于校验和'0671'

所以我知道unpack("%16W*", $string)会给我 16 位十进制值,但我需要十六进制表示。我知道这很容易,所以请原谅我的无知。

0 投票
1 回答
1233 浏览

php - php如何解压十六进制数据

我有这个:

我尝试使用 unpack(),但没有成功

0 投票
1 回答
73 浏览

ruby-on-rails - 删除了未打包的 gems 文件夹,现在出现错误

我解压缩了 gem,然后用“rm”手动删除了它们。现在我无法让它使用系统宝石,而且我所做的一切都会出错。

我解压了 shoulda 并冻结了 rails,后来认为没有必要并删除了 shoulda 文件夹和所有 action_/active_ 文件夹(我重置为 HEAD 并放弃了更改)。我想不出哪里会有仍然反映解包/冻结的变化......

现在,当我尝试运行 rake 时,我得到:

有没有办法让它重新使用系统宝石?我不明白为什么如果供应商/插件/中的宝石不存在,它不只是按优先顺序加载系统宝石。

任何见解都会很棒。

0 投票
3 回答
1850 浏览

java - 用 Java 读取二进制文件

我有一个 java 程序,它在 MySQL“BINARY (128)”字段中存储一个 128 字节长度的字节数组。

然后,我使用 PHP 访问数据库并选择将这些数据导出到文件中,因此我 unpack() 二进制数据,并将其写入文件中。

然后,必须在我正在编写的 Java 程序中读取这个文件,但我找不到如何读取这些数据。有什么建议吗?

我试过:

但是 bis.read() 返回一个 int,而我发送到 mysql db 的字节数组是一个字符串:"text".getBytes("utf-8");

谢谢,