加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl中的XML数字签名

发布时间:2020-12-15 23:32:39 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用 Crypt::OpenSSL::RSA 模块在Perl中对XML进行数字签名.我正在从文件中加载私钥.私钥是使用Java从密钥库生成的. 以下是我的Perl代码: my $private = 'my_priv.key';my $private_key = read_file( $private );print "my private key text isn"
我正在尝试使用 Crypt::OpenSSL::RSA模块在Perl中对XML进行数字签名.我正在从文件中加载私钥.私钥是使用Java从密钥库生成的.

以下是我的Perl代码:

my $private = 'my_priv.key';
my $private_key = read_file( $private );
print "my private key text isn",$private_key;

输出,而不是把整个键放在这里,只是少数第一行:-)

> -----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKAuqJ1ZkxHZStfSt0CdEsaSYuLO
> 6zDiTpt60asVLWpLe2bf...
my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($private_key);
print "my private key isn",$rsa_priv->get_private_key_string();

输出:

> -----BEGIN RSA PRIVATE KEY-----
> MIICXAIBAAKBgQCgLqidWZMR2UrX0rdAnRLGkmLizusw4k6betGrFS1qS3tm3+97
> wMvFXCx0Od8eb

$private_key和$rsa_priv-> get_private_key_string()的结果不同.它应该表现得那样吗?

有没有人能够使用Crypt :: OpenSSL :: RSA签署XML?

编辑:

我正在使用java代码提取私钥,代码如下
????`KeyStore ks = KeyStore.getInstance(“JKS”);

keypass = sPass.toCharArray();

FileInputStream fis = new FileInputStream(store);
ks.load(fis,sPass.toCharArray());
fis.close();

String eol = System.getProperty("line.separator");

Key k = ks.getKey(alias,keypass);

System.out.println("....Generating the Private Key.....");
String encKey = new BASE64Encoder().encode(k.getEncoded());
System.out.println("Encoded Key: " + encKey);
BufferedWriter myKey = null;
myKey = new BufferedWriter(new FileWriter(alias + "_priv.key"));
myKey.write("-----BEGIN PRIVATE KEY-----" + eol);
myKey.write(encKey + eol);
myKey.write("-----END PRIVATE KEY-----");
myKey.close();
System.out.println("....Private Key Generated.....");`

使用java和perl,因为我试图签名的xmls是在perl(它是一个完整的大系统),而密钥库是在java中.

第一次对任何内容进行数字签名,我的数字签名xml根本不对收件人系统进行身份验证

解决方法

The results of $private_key; and $rsa_priv->get_private_key_string(); are different,is this supposed to behave like that?

是的,输入是X509键,输出是RSA密钥. openssl rsa -in my_priv.key给出了相同的结果.

如果您对这些内容一无所知,那么最好使用高级库.

> XML-Sig
> Net-SAML2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读