У меня есть два отдельных приложения, одно из которых написано на Java и другое в Erlang. Оба приложения отправляют сообщения друг другу в формате String, и эти сообщения зашифровываются в приложении Java и нуждаются в расшифровке в приложении Erlang.Расшифровка строки с использованием erlang + RSA
Проблема заключается в следующем: Я использую общедоступные/закрытые ключи RSA для шифрования/дешифрования.
Если я шифрую данные и расшифровываю все внутри своего кода Erlang, все в порядке. Но я не могу расшифровать строку, исходящую из моей конечной точки java.
Вот простой тест, который я делаю:
PrivKey = "-----BEGIN RSA PRIVATE KEY----- ...",
% Data is the string I receive from Java
Data = "s013aA/SGN2iGYEbEIXXKvJiipqisRVfVEDneL8npRgThTHxTnYZESzVfCF463phPZyo5aOozisU7pwDdGKXgY8aqYZC+a3uES5muTb2RrzJ17yYku+g4S44vgIwZ9EyustZafNVGEYfgbWOYaPP/q5k683uR+MRHVqp6UbqMok=",
[PrivEntry] = public_key:pem_decode(list_to_binary(PrivKey)),
Priv = public_key:pem_entry_decode(PrivEntry),
BinData = iolist_to_binary(Data),
public_key:decrypt_private(Data, Priv).
Выполнение этого кода генерирует ошибку, как это:
** exception error: decrypt_failed
Я думаю, что проблема в формате BinData, но я не мог Не найди никакого места, говоря, как я кодирую строку, чтобы перейти к функции decrypt_private.
Кто-нибудь знает, как это сделать? Это кажется простым, но мне нужно много времени, чтобы разобраться.
Спасибо.