代码之家  ›  专栏  ›  技术社区  ›  chenyf

Perl6中的AES加密?

  •  10
  • chenyf  · 技术社区  · 6 年前

    我试图将用python编写的模块转换为perl 6,我发现没有 AES Perl6中的方法:

    from Cryptodome.Cipher import AES
    import base64
    
    def aes(text, key):
        pad = 16 - len(text) % 16
        text = text + bytearray([pad] * pad)
        encryptor = AES.new(key, 2, b"0102030405060708")
        ciphertext = encryptor.encrypt(text)
        return base64.b64encode(ciphertext)
    

    有没有用Perl6编写的模块实现 俄歇电子能谱 方法?

    1 回复  |  直到 6 年前
        1
  •  12
  •   Jonathan Worthington    6 年前

    似乎 OpenSSL 模块提供对各种AES密码的访问。这取决于OpenSSL库是否可用(尽管在Windows上,我相信它作为模块安装过程的一部分下载DLL)。

    安装了那个( zef install OpenSSL 一个人可以:

    use OpenSSL::CryptTools;
    

    然后使用 encrypt / decrypt :

    # Fake IV and key
    my $iv = ('0' x 16).encode;
    my $key = ('xy' x 16).encode;
    
    # Encrypt.
    my $ciphertext = encrypt("asdf".encode, :aes256, :$iv, :$key);
    say $ciphertext;
    
    # Decrypt.
    say decrypt($ciphertext, :aes256, :$iv, :$key).decode;
    

    these tests 更多示例。

    推荐文章