小编Vij*_*ati的帖子

如何在 Perl 中向连接的 Websocket 客户端发送定期消息

这个问题类似于 Python 的这个问题: WebSocket Server 定期在 python 中发送消息

在 Perl 中创建 WebSocket 的示例使用了一个小消息发送服务:http : //search.cpan.org/~topaz/Net-WebSocket-Server-0.001003/lib/Net/WebSocket/Server.pm

代码是:

use Net::WebSocket::Server;

my $origin = 'http://example.com';

Net::WebSocket::Server->new(
    listen => 8080,
    on_connect => sub {
        my ($serv, $conn) = @_;
        $conn->on(
            handshake => sub {
                my ($conn, $handshake) = @_;
                $conn->disconnect() unless $handshake->req->origin eq $origin;
            },
            utf8 => sub {
                my ($conn, $msg) = @_;
                $_->send_utf8($msg) for $conn->server->connections;
            },
            binary => sub {
                my ($conn, $msg) = @_;
                $_->send_binary($msg) for $conn->server->connections;
            },
        );
    }, …
Run Code Online (Sandbox Code Playgroud)

perl nonblocking websocket

5
推荐指数
1
解决办法
2160
查看次数

确保 MYSQL/InnoDB 中大于 255 的 varchar 的唯一性

我有一个包含 URL 的表,其中一些长度超过 255 个字符。我想对 URL 列施加唯一性约束,但 MySQL 不允许我在 URL 上创建键。我正在使用 InnoDB/UTF8 表。据我了解,它每个字符使用多个字节,密钥限制为 766 个字节(在 InnoDB 中)。

根据 URL 保持行唯一的优雅方法是什么?

mysql innodb

4
推荐指数
1
解决办法
1850
查看次数

Perl 和 PHP 之间的解码/编码 openssl aes cbc 字符串

我正在用 PHP 编写一些服务器代码,我有一个用 Perl 编写的离线进程,它们需要通过加密字符串进行通信。在 PHP 中,我一直在使用:

$encrypted_string = openssl_encrypt($my_string, "aes-128-cbc", "my_password", true, "1234567812345678");

我基本上想使用 Perl 实现完全相同的字符串输出。对我如何做到这一点的任何帮助表示赞赏。谢谢!

php perl openssl aes cbc-mode

3
推荐指数
1
解决办法
2629
查看次数

在perl中将数组转换为json,获取字符串数组

我正在尝试将数组转换为json:


   $json = to_json("numbers_array" => \@numbers_array);
   print $json;

但我得到的输出是:

  {"numbers_array" => ["1","2","3"] }

我正在使用push()添加元素来构建数组.如何转换为json并保留数字类型,以便输出为:

  {"numbers_array" => [1,2,3]}

谢谢!

perl json

3
推荐指数
1
解决办法
1015
查看次数

Perl中的Google身份验证器实现

我正在寻找一个简单的Perl实现,它验证使用服务器端密码创建的Google身份验证器令牌.例如,

以下Google URL允许您以base32格式(在下面的情况下,秘密是e4ytonjeim4hcsrhja5fe5kqfu)对服务器密码进行编码,作为可以从Google身份验证器应用程序中读取的QR代码(请参见下图):
https://chart.googleapis. COM /图表?CHT = QR&CHS = 100×100&CHL = otpauth%3A%2F%2Ftotp%2Fmysite%3A29%3Fsecret%3De4ytonjeim4hcsrhja5fe5kqfu%26issuer%3Dmysite

将QR码扫描到验证器应用程序后,它会生成令牌,如:716340.如何验证令牌的正确性?

这个问题是这个Python问题的Perl等价物:Python中的 Google Authenticator实现

perl google-authenticator two-factor-authentication

2
推荐指数
2
解决办法
2666
查看次数

在Perl中使用六角形字符串的SHA1 HMAC

我有两个字符串(键和数据),它们是十六进制字符串格式,我想接受它们的HMAC.字符串是:

$data = "0000000002ccbe80";
$key  = "48656c6c6f21deadbeef";
Run Code Online (Sandbox Code Playgroud)

我想生成相当于javascript jsSHA函数,其中字符串被视为十六进制字符串.此演示http://caligatio.github.io/jsSHA/允许您指定密钥和数据是HEX字符串.

但是,当我hmac_sha1_hex($data, $key)在Perl中使用时,字符串被视为文本.我得到了hmac_sha1_hex的输出:

775083be8f8c94baea8d12a5038d191cab3759ac
Run Code Online (Sandbox Code Playgroud)

如何生成与jsSHA演示相同的输出,其中两个输入都被视为十六进制,输出也是十六进制?我想要这个输出:

f2ea4899a8582c21610085988c54645fd7193393
Run Code Online (Sandbox Code Playgroud)

perl hex hmacsha1

2
推荐指数
1
解决办法
1274
查看次数

如何在Perl中向下舍入到给定的小数位数

我想向下舍入到N个小数位(两个位置为分).例如

5.0166 => 5.01
0.933  => 0.93
Run Code Online (Sandbox Code Playgroud)

sprintf舍入到最接近的数字,所以不会产生我想要的.例如

sprintf("%.2f", 5.0166) => 5.02
Run Code Online (Sandbox Code Playgroud)

floating-point perl

1
推荐指数
1
解决办法
668
查看次数