网上关于RAS的介绍很多,但要从原理上理解清楚,并运用在自己程序中(特别是Delphi程序),却并不是一件简单的事情,可参考的例子很少。本例直接利用Indy的封装类及OpenSSL的DLL,并用Delphi来实现RAS的密钥对生成、加解密等过程,还是很简单的一件事情。希望这个Demo,能够起到抛砖引玉的利用,帮助到有需要的人。
RAS的原理不需要理解得很透彻,只需要知道算法很难破解,特别是1024位以上的加密。RAS也不需要我们去具体实现,OpenSSL实现了该算法,具体支持库是libeay32.dll和ssleay32.dll,这两个dll也不需要特别上网下载,因为现在许多程序都利用了这两个dll,系统中一般都有。
作为一个Delphi程序员,还可以利用Indy提供的对OpenSSL函数的封装来简化使用。具体的单元文件名为IdSSLOpenSSLHeaders.pas,简单地在自己的unit中uses即可。
RAS应用,首先要生成一个密钥对,然后利用这个密钥对,再生成一个公钥。公钥文件一般都是发布给其他人使用,私钥(即生成的那个密钥对)自己妥善保管。
RAS一般有两种应用场景,第一种就是数据加密,第二种是数字签名。
数据加密,通常都是在别人给你发送信息时使用,别人用事先获得的你的公钥来加密数据,你得到加密数据后,用你自己的私钥来解开数据。如果要加密的数据的长度,大于密钥的长度减11(不要问我为什么要减11),就要进行循环分组,一段段地加密数据,最后把加密后数据的拼接在一起。当然,如果加密时有循环,解密时也同样要循环了。这个循环分组的程序实现逻辑,可以参考Delphi自带的源代码,具体单元名称为DBXOpenSSL.pas。
数字签名,一般都是先对源数据做摘要处理,然后用私钥对生成的摘要信息进行加密,最后把源数据随同加密后的摘要信息,一并发送给目标人。目标人在收到之后,用事先获得的你的公钥来解密摘要信息,并和本地生成的对源数据的摘要信息进行比对,只要是一样的就说明源数据没有被更改的。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
delphi RSA加密 (159个子文件)
PacRAS.bdsproj 9KB
PacRAS.cfg 428B
Project1.cfg 388B
Project1.cfg 388B
Project1.cfg 388B
PacRAS.dcr 2KB
FGInt.dcu 54KB
FGInt.dcu 50KB
FGInt.dcu 47KB
FGInt.dcu 47KB
FGInt.dcu 47KB
Unit1.dcu 14KB
Unit1.dcu 10KB
Unit1.dcu 10KB
FGIntRSA.dcu 10KB
Unit1.dcu 9KB
RSA.dcu 7KB
FGIntRSA.dcu 6KB
FGIntRSA.dcu 5KB
FGIntRSA.dcu 5KB
FGIntRSA.dcu 5KB
RANLIB.dcu 3KB
RANLIB.dcu 3KB
RANLIB.dcu 3KB
ranlib.dcu 3KB
PacRAS.dcu 2KB
FGIntPrimeGeneration.dcu 1KB
FGIntPrimeGeneration.dcu 1KB
FGIntPrimeGeneration.dcu 1KB
FGIntPrimeGeneration.dcu 1KB
FGIntPrimeGeneration.dcu 974B
Unit1.ddp 51B
Unit1.ddp 51B
Unit1.ddp 51B
Unit1.ddp 51B
Unit1.dfm 8KB
Unit1.dfm 8KB
Unit1.dfm 8KB
Unit1.dfm 8KB
Unit1.dfm 2KB
libeay32.dll 1.02MB
ssleay32.dll 216KB
Project1.dof 2KB
Project1.dof 2KB
Project1.dof 2KB
PacRAS.dof 2KB
PacRAS.dpk 643B
Project1.dpr 326B
Project1.dpr 326B
Project1.dpr 326B
Project1.dpr 326B
Project1.dpr 305B
PacRAS.dproj 18KB
Project1.dproj 7KB
Project1.dproj 5KB
Project1.exe 1.97MB
Project1.exe 462KB
Project1.exe 430KB
Project1_Icon.ico 766B
PacRAS.identcache 268B
Project1.identcache 162B
Project1.dproj.local 913B
Project1.dproj.local 62B
PacRAS.dproj.local 62B
delphifans.com.nfo 592B
MERSENNA.OBJ 2KB
MERSENNA.OBJ 2KB
MERSENNA.OBJ 2KB
MERSENNA.OBJ 2KB
motrot.OBJ 1KB
motrot.OBJ 1KB
motrot.OBJ 1KB
motrot.OBJ 1KB
ranrot32.OBJ 941B
ranrot32.OBJ 941B
ranrot32.OBJ 941B
ranrot32.OBJ 941B
mother32.OBJ 743B
mother32.OBJ 743B
mother32.OBJ 743B
mother32.OBJ 743B
FGInt.pas 65KB
FGInt.pas 64KB
FGInt.pas 64KB
FGInt.pas 64KB
FGInt.pas 64KB
FGInt.pas 62KB
DBXOpenSSL.pas 11KB
FGIntRSA.PAS 11KB
IEDCode.pas 7KB
FGIntRSA.PAS 7KB
FGIntRSA.PAS 7KB
FGIntRSA.PAS 7KB
FGIntRSA.PAS 7KB
FGIntRSA.PAS 7KB
Unit1.pas 6KB
Unit1.pas 6KB
Unit1.pas 6KB
Unit1.pas 6KB
RSA.pas 5KB
共 159 条
- 1
- 2
资源评论
- yosen2022-04-28里面都是重复的,只能参考,没有太大的意义
- qq_337210392020-11-09不错,虽然看不太懂,但能用。谢谢
wxxwjl
- 粉丝: 0
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功