在Perl中将RSA密钥转换为JSON

杰西

我需要找到一种将RSA公钥传输到服务器的网络通信程序的方法。我已经进行了一些研究,似乎最简单的方法是将公共密钥(存储为某种哈希引用)转换为JSON进行传输。但是,在我的测试代码中,我无法获取转换为JSON的密钥。这是我的测试程序:

use strict;
use warnings;

use Crypt::RSA;
use JSON;

my %hash = ( name => "bob",
             age  => 123,
             hates=> "Perl"
        );

    my $hash_ref = \%hash;
    my $hash_as_json = to_json($hash_ref);

    print $hash_as_json, "\n"; # Works fine for a normal hash

    my $rsa = new Crypt::RSA;

    my ($public, $private) = $rsa->keygen ( 
            Identity  => 'client',
            Size      => 512,  
            Password  => 'password', 
            Verbosity => 1,
        ) or die $rsa->errstr();

    my $key_hash_as_json = to_json($public, {allow_blessed => 1, convert_blessed => 1});
    print $key_hash_as_json, "\n";

在找到该行之前,{allow_blessed => 1, convert_blessed => 1}我收到一条错误消息,提示

遇到对象'Crypt :: RSA :: Key :: Public = HASH(0x3117128)',但是在/ home / alex / perl5 / lib / perl5 / JSON.pm第154行。

这是什么意思,为什么那条线会解决?

添加代码后,它仅null在我尝试打印JSON时给出。为什么会发生这种情况,我该如何解决?

另外,有没有更好的方法来做我在这里尝试的事情?

黄昏-无效-

将RSA公钥表示为文本的最常见方式是PEM编码。不幸的是,Crypt::RSA它没有提供任何转换为​​这种格式或其他任何标准格式的方法不要使用它!

相反,建议您使用Crypt::OpenSSL::RSA使用此模块生成私钥并打印其公共形式很简单:

use Crypt::OpenSSL::RSA;

my $key = Crypt::OpenSSL::RSA->generate_key(512);
print $key->get_public_key_string;

这将输出如下的PEM编码:

-----BEGIN RSA PUBLIC KEY-----
MEgCQQDd/5F9Rc5vsNuKBrd4gfI4BDgre/sTBKu3yXpk+8NjByKpClsi3IQEGYeG
wmv/q/1ZjflFby1MPxMhXZo/82CbAgMBAAE=
-----END RSA PUBLIC KEY-----

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将PEM密钥转换为RSA密钥对?

来自分类Dev

将RSACryptoServiceProvider RSA XML密钥转换为PKCS8

来自分类Dev

OpenSSL使用RSA专用密钥将PEM转换为PFX

来自分类Dev

在Perl中将文件时间转换为GMT

来自分类Dev

在Perl中将哈希转换为哈希数组

来自分类Dev

在Perl中将.exe转换为.pl?

来自分类Dev

在Perl中将SVG转换为PNG

来自分类Dev

在perl中将localtime转换为utc时间

来自分类Dev

使用密钥将熊猫转换为 json

来自分类Dev

如何使用带有空格的JSON密钥名称在Ballerina中将JSON转换为记录或映射类型

来自分类Dev

在perl中将JSON缓冲区转换为字符串

来自分类Dev

私钥:将有效的EC密钥转换为等效的RSA密钥

来自分类Dev

使用HEX密钥将Perl转换为Ruby XOR

来自分类Dev

如何在C#中将带有下划线的JSON密钥转换为新对象

来自分类Dev

在Java中将JSON转换为XML

来自分类Dev

在python / pymongo中将bson转换为json

来自分类Dev

在bash中将行转换为json

来自分类Dev

在水槽中将CSV文件转换为JSON

来自分类Dev

在Javascript中将Map转换为JSON对象

来自分类Dev

在C#中将VDF转换为JSON

来自分类Dev

在Postgresql中将记录数组转换为JSON

来自分类Dev

在extJS中将数组转换为JSON

来自分类Dev

在Haskell中将元组数组转换为JSON

来自分类Dev

在JavaScript中将Json日期转换为“日期”

来自分类Dev

在Scala中将JSON转换为MultiMap

来自分类Dev

在GO中将嵌套的JSON转换为csv

来自分类Dev

在Javascript中将Array对象转换为Json

来自分类Dev

在Powershell中将JSON转换为Csv列

来自分类Dev

在bash中将String转换为JSON