【问题标题】:Openssl string decryption in PerlPerl中的Openssl字符串解密
【发布时间】:2016-04-10 03:06:29
【问题描述】:

我有一个接受输入字符串的 Perl 脚本。该字符串包含$ 的签名。该字符串使用 openssl 加密并解密回来。 encdec 是下面代码 sn-p 中的加密和解密字符串。

#! /usr/bin/perl
use strict;
use warnings;

my $input = 'build:$6$n2cR7cY/$aKv6qQRWjYMIQIyAdTsw6nPtMzEZoqHziqyrL9sn/m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::';

print "Input: $input\n";
my $enc = `openssl enc -base64 -A <<< $input`;
print "Encrypted Output: $enc\n";
my $dec = `openssl enc -base64 -A -d <<< $enc`;
print "Decrypted Output: $dec\n";

输出:

# ./temp.pl
Input: build:$6$n2cR7cY/$aKv6qQRWjYMIQIyAdTsw6nPtMzEZoqHziqyrL9sn/m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::
Encrypted Output: YnVpbGQ6Ly9tMjlrNW1rUWpnY3daYXJBLjhsQXRlNm1tREdha2lwamV0dUNpSDlZRjJmRjA6MTY3MzY6MDo5OTk5OTo3Ojo6Cg==
Decrypted Output: build://m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::

我面临的问题是解密后的字符串与提供给加密的输入字符串不同。我看到$ 之后的所有字符都被删除了。我可以知道$ 在这里的样子吗?我怎样才能保留整个字符串?

【问题讨论】:

    标签: perl encryption openssl dollar-sign


    【解决方案1】:

    如果您想编码和解码 Base 64 字符串,那么您应该使用 MIME::Base64 模块

    代码如下所示

    use strict;
    use warnings;
    
    use MIME::Base64;
    
    my $input = 'build:$6$n2cR7cY/$aKv6qQRWjYMIQIyAdTsw6nPtMzEZoqHziqyrL9sn/m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::';
    
    print "Input: $input\n\n";
    
    my $enc = encode_base64($input);
    print "Encrypted Output: $enc\n";
    
    my $dec = decode_base64($enc);
    print "Decrypted Output: $dec\n";
    

    输出

    Input: build:$6$n2cR7cY/$aKv6qQRWjYMIQIyAdTsw6nPtMzEZoqHziqyrL9sn/m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::
    
    Encrypted Output: YnVpbGQ6JDYkbjJjUjdjWS8kYUt2NnFRUldqWU1JUUl5QWRUc3c2blB0TXpFWm9xSHppcXlyTDlz
    bi9tMjlrNW1rUWpnY3daYXJBLjhsQXRlNm1tREdha2lwamV0dUNpSDlZRjJmRjA6MTY3MzY6MDo5
    OTk5OTo3Ojo6
    
    Decrypted Output: build:$6$n2cR7cY/$aKv6qQRWjYMIQIyAdTsw6nPtMzEZoqHziqyrL9sn/m29k5mkQjgcwZarA.8lAte6mmDGakipjetuCiH9YF2fF0:16736:0:99999:7:::
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 2019-11-19
      • 2010-11-12
      • 1970-01-01
      • 2019-04-18
      相关资源
      最近更新 更多