gpt4 book ai didi

elixir - 具有 key 导出功能的 AES 解密

转载 作者:行者123 更新时间:2023-12-03 17:37:11 27 4
gpt4 key购买 nike

我正在将解密功能从 .NET 移植到 elixir 作为概念证明。

任何人都可以给我一些指导,看看这是否适用于 Erlang 加密模块?我玩过block_decrypt功能,但我永远无法得到正确的结果。我认为我的问题来自不正确的 key 和 IV。

我不确定如何从加密的纯文本值中导出字节数据以传递到 block_decrypt .

这是我用来尝试解密的 Elixir 代码:

defmodule TestApp.Decrypt do
@iv <<30,64,180,159,172,197,92,10,197,3,39,75,53,92,93,37>>

def unpad(data) do
to_remove = :binary.last(data)
:binary.part(data, 0, byte_size(data) - to_remove)
end


def decrypt(data, key) do
IO.puts "WOrking to decrypt #{data} using #{key}"
padded = :crypto.block_decrypt(:aes_cbc256, key, @iv, :base64.decode(data))
unpad(padded)
end
end

我有一个 32 字节的 key ,我正在尝试传递,但出现此错误:
Erlang error: :notsup 

Crypto Library 指出这个错误是因为我的 erlang 构建中没有启用脏调度程序,但在我研究之前我不知道我是否朝着正确的方向前进。

最佳答案

erlang 加密错误不是很有帮助。看起来您可能指定了错误的密码。而不是 aes_cbc256你可能想要aes_256_cbc .见 http://erlang.org/doc/man/crypto.html#block_decrypt-4

你可能还想看看我正在做的一个名为 Apoc 的项目,它把这些东西封装成一个更像“Elixir”的 API:https://github.com/coderdan/apoc

到目前为止,它在 GCM 模式下支持 AES,但我很想为其他密码做出一些贡献!

关于elixir - 具有 key 导出功能的 AES 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46177838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com