其中的pub.key格式如下
-----BEGIN PUBLIC KEY-----
.....
-----END PUBLIC KEY-----
pri.key格式如下
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-module(rsa).
-author('flyinmind@csdn.net').-vsn('1.0').
-export([enc/1,dec/1,test/1]).
read_rsa_key(FileName) ->
{ok, PemBin} = file:read_file(FileName),
[Entry] = public_key:pem_decode(PemBin),
public_key:pem_entry_decode(Entry)
.
rsa_public_key() ->
read_rsa_key("pub.key")
.
rsa_private_key() ->
read_rsa_key("pri.key")
.
enc(PlainText) ->
public_key:encrypt_public(PlainText, rsa_public_key())
.
dec(CipherText)->
public_key:decrypt_private(CipherText, rsa_private_key())
.
test(Msg) ->
CipherText = enc(Msg),
io:format("plain text:~p, cipher text:~p~n", [Msg, CipherText]),
PlainText = dec(CipherText),
io:format("plain text after decode:~p~n", [PlainText])
.