erlang 使用rsa加密及解码的方法

来源:互联网 发布:免费看书软件电脑版 编辑:程序博客网 时间:2024/06/05 20:48

其中的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])
.
0 0