当前位置: 首页 > news >正文

网站建设客户资料收集清单郑州网站建设推广

网站建设客户资料收集清单,郑州网站建设推广,安徽池州网站制作,美女网站源码带采集LockBox 是用于 Delphi 的一套加密/解密控件 最早是一套商业控件,后来开源了。再后来,又有一个新版本的 LockBox,和旧版本完全不同。 旧版本的 LockBox 叫 LockBox 2;新版本的叫 LockBox 3。 这两个控件,都可以通过…

LockBox 是用于 Delphi 的一套加密/解密控件

最早是一套商业控件,后来开源了。再后来,又有一个新版本的 LockBox,和旧版本完全不同。

旧版本的 LockBox 叫 LockBox 2;新版本的叫 LockBox 3。

这两个控件,都可以通过 Delphi IDE 的 GetIt 来安装。也可以自己去 github 下载源代码来安装。

LockBox3 怎么使用,我还没搞明白。

这里讲的是如何使用 LockBox 2 的 RSA 加密。

RSA 加密的一般概念

RSA 加密是非对称加密。首先要产生一对密钥:一个叫公钥,公开给别人的;一个叫私钥,自己留着的。私钥一定要保留好,不能泄露。

通常的用法之一:

别人使用公钥加密的信息,传递给你。你使用私钥解密。其它人也能够拿到公钥,但这个加密信息用公钥无法解开,只能用私钥解开。而私钥只你自己有,所以加密信息不怕别人拿到导致泄密。

通常的用法之二:

签名。你用自己的私钥给一个文件或者一条信息签名后发送给别人。这个签名的信息本身是没有加密的,仅仅是用私钥加密了信息的摘要(HASH 值)。收到信息(文件)的人,用你的公钥解密HASH值,然后再自己对收到的信息或者文件做 HASH,对比两个 HASH 值,如果相同,说明文件没有被篡改。

上述两种用法,LockBox 2 都提供了对应的控件:

1. TLbRSA:用于 RSA 的加密/解密。在 Delphi IDE 里面安装好 LockBox 2 以后,拖控件到 Form 上面,就能使用了;

2. TLbRSASSA:用于签名。同样是拖控件到 Form 上,就能使用。

进阶玩法

上面的普通玩法,就是公钥加密信息,然后用私钥解密信息。那么,如果我要用私钥加密信息,用公钥解密呢?直接使用 TLbRSA 这个控件就不行了。它没有提供。

但是,看看 TLbRSA 的源代码,大概就知道该怎么写代码了。

当然,绕开 TLbRSA 这个控件,使用它底层一些的函数和方法,必须引用 LockBox 2 的单元:LbRSA.pas;然后,

概念如下:

1. 公钥私钥都使用 TLbRSAKey 类型;
2. 创建公钥私钥:TRSA.GenerateRSAKeysEx(PriKey, PubKey, TLbAsymKeySize.aks512, 20, nil);
3. 创建好的,想要保存为文件或者输出:TLbRSAKey.StoreToStream 或者 StoreToFile;这里输出的是二进制数据。可以考虑拿到以后用 BASE64 编码为字符串后传输或者保存;
4. 加密或者解密的使用:
4.1. 创建 TLbRSAKey 实例,读入之前创建好的公钥或者私钥的数据;
4.2. 调用 TRSA.RSAEncryptBytes() 方法;这个方法有3个参数:TBytes 是需要加密/解密的数据,TLbRSAKey 是用来加密/解密的密钥;Boolean = True 是加密操作,False 是解密操作。

例子代码:

1. 创建公钥/私钥。创建好的密钥,保存为文件。公钥的话,就可以发出去给别人使用了。

这里,我使用了 2 种保存密钥的方式,都测试通过。

A. 取其属性字符串,写入 TStringList 里面再存入文件。加载时用 TStringList 加载文件后,为其字符串属性赋值完成密钥加载。

B. 它有 StoreToFile 的方法,直接保存为文件。当然,这里保存的文件是二进制文件,不是文本文件。如果需要文件是文本的话,可以把这个二进制文件的内容做 BASE64 编码。

procedure TForm5.CreatePairKey;
varPubKey: TLbRSAKey;PriKey: TLbRSAKey;RSACallback: TLbRSACallback; //这是个事件方法,显示进度用。
begin//创建 KeyTRSA.GenerateRSAKeysEx(PriKey, PubKey, TLbAsymKeySize.aks512, 20, nil);if not Assigned(Self.FPubKey) then Self.FPubKey := TStringList.Create;if not Assigned(Self.FPriKey) then Self.FPriKey := TStringList.Create;//保存为 StringList 然后保存为文件Self.FPubKey.Clear;Self.FPubKey.Add(PubKey.ModulusAsString);Self.FPubKey.Add(PubKey.ExponentAsString);Self.SavePubKey;    Self.FPriKey.Clear;Self.FPriKey.Add(PriKey.ModulusAsString);Self.FPriKey.Add(PriKey.ExponentAsString);Self.SavePriKey;//直接保存为文件PubKey.StoreToFile(Self.GetPubKeyFn2);  PriKey.StoreToFile(Self.GetPriKeyFn2);  
end;
2. 使用 TStringList 保存的字符串密钥来加密
procedure TForm5.Button6Click(Sender: TObject);
varPriKey: TLbRSAKey;B: TBytes;S: string;
begin//验证把 Key 存储为 TStringList 以后载入使用;加密PriKey := TLbRSAKey.Create(TLbAsymKeySize.aks512);PriKey.ModulusAsString := Self.FPriKey[0];PriKey.ExponentAsString := Self.FPriKey[1];B := TRSA.RSAEncryptBytes(TEncoding.Unicode.GetBytes('这是我用 RSA 私钥加密后的字符串。'), PriKey, True);//编码为 BASE64var Base64 := TBase64Encoding.Create;S := Base64.EncodeBytesToString(B);var SL := TStringList.Create;trySL.Add(S);SL.SaveToFile(Self.GetMyEncodedMessageFn);finallySL.Free;end;
end;
3. 使用 TStringList 存储的字符串密钥来解密:
procedure TForm5.Button7Click(Sender: TObject);
varPubKey: TLbRSAKey;S: string;B: TBytes;
beginPubKey := TLbRSAKey.Create(TLbAsymKeySize.aks512);PubKey.ModulusAsString := Self.FPubKey[0];PubKey.ExponentAsString := Self.FPubKey[1];//解密var SL := TStringList.Create;SL.LoadFromFile(Self.GetMyEncodedMessageFn);S := SL.Text;var Base64 := TBase64Encoding.Create;B := Base64.DecodeStringToBytes(S);B := TRSA.RSAEncryptBytes(B, PubKey, False);S := TEncoding.Unicode.GetString(B);Memo1.Lines.Add(S);
end;
4. 直接加载保存的二进制密钥文件来解密:
procedure TForm5.Button9Click(Sender: TObject);
varPubKey: TLbRSAKey;S: string;B: TBytes;
beginPubKey := TLbRSAKey.Create(TLbAsymKeySize.aks512);//用公钥解密,直接加载保存为文件的密钥二进制文件PubKey.LoadFromFile(Self.GetPubKeyFn2);//从文件加载加密后的密文字符串var SL := TStringList.Create;SL.LoadFromFile(Self.GetMyEncodedMessageFn);S := SL.Text;  //这里是加密后的字符串。var Base64 := TBase64Encoding.Create;B := Base64.DecodeStringToBytes(S);//执行解密B := TRSA.RSAEncryptBytes(B, PubKey, False);S := TEncoding.Unicode.GetString(B);Memo1.Lines.Add(S);
end;

结论:

使用 TLbRSAKey 和 TRSA 的几个方法,完成非对称加密 RSA 的密钥创建,密钥输出,密钥加载,加密/解密的过程,可以做到用公钥加密后用私钥解密,也可以做到用私钥加密后,用公钥解密。

当然,普通的玩法,也可以使用 TLbRSA 和 TLbRSASSA,拖控件到界面上直接使用。


文章转载自:
http://wanjiaferromagnesian.sqxr.cn
http://wanjiapictorialize.sqxr.cn
http://wanjiathermidor.sqxr.cn
http://wanjiaincisure.sqxr.cn
http://wanjiatetrachlorethane.sqxr.cn
http://wanjiabootblack.sqxr.cn
http://wanjiainterstation.sqxr.cn
http://wanjiascornfulness.sqxr.cn
http://wanjiasolyanka.sqxr.cn
http://wanjiamonseigneur.sqxr.cn
http://wanjiafolie.sqxr.cn
http://wanjiadispermous.sqxr.cn
http://wanjiadawt.sqxr.cn
http://wanjiaavigator.sqxr.cn
http://wanjiagirondism.sqxr.cn
http://wanjiaindiscussible.sqxr.cn
http://wanjiacontemporary.sqxr.cn
http://wanjiamasterless.sqxr.cn
http://wanjiasumption.sqxr.cn
http://wanjiahydrography.sqxr.cn
http://wanjiarevitalize.sqxr.cn
http://wanjiaaboveground.sqxr.cn
http://wanjialadybug.sqxr.cn
http://wanjiabuna.sqxr.cn
http://wanjiasemifeudal.sqxr.cn
http://wanjiapics.sqxr.cn
http://wanjiapresentence.sqxr.cn
http://wanjiadisazo.sqxr.cn
http://wanjiasabbathly.sqxr.cn
http://wanjiapersecute.sqxr.cn
http://wanjiabungler.sqxr.cn
http://wanjiabinucleate.sqxr.cn
http://wanjiacorkage.sqxr.cn
http://wanjiaidiographic.sqxr.cn
http://wanjiapraline.sqxr.cn
http://wanjiaattentively.sqxr.cn
http://wanjiaalleviator.sqxr.cn
http://wanjiadrear.sqxr.cn
http://wanjiaharshness.sqxr.cn
http://wanjiasure.sqxr.cn
http://wanjiabibliographize.sqxr.cn
http://wanjiaragbag.sqxr.cn
http://wanjiagph.sqxr.cn
http://wanjiapyophthalmia.sqxr.cn
http://wanjiaoutswing.sqxr.cn
http://wanjiathermophosphorescence.sqxr.cn
http://wanjiashona.sqxr.cn
http://wanjiagentlemanlike.sqxr.cn
http://wanjiatelfordize.sqxr.cn
http://wanjiamosstrooper.sqxr.cn
http://wanjiapristine.sqxr.cn
http://wanjiamonogamian.sqxr.cn
http://wanjiaallophonic.sqxr.cn
http://wanjiaopacity.sqxr.cn
http://wanjiathunderer.sqxr.cn
http://wanjiamandinka.sqxr.cn
http://wanjiainexpectancy.sqxr.cn
http://wanjianarwhal.sqxr.cn
http://wanjiacretic.sqxr.cn
http://wanjiaisopterous.sqxr.cn
http://wanjiawomanish.sqxr.cn
http://wanjiavatic.sqxr.cn
http://wanjiadestroyer.sqxr.cn
http://wanjiaminicoy.sqxr.cn
http://wanjiaraying.sqxr.cn
http://wanjiakatabolism.sqxr.cn
http://wanjiatrifle.sqxr.cn
http://wanjiaharsh.sqxr.cn
http://wanjiadibasic.sqxr.cn
http://wanjiadiscovert.sqxr.cn
http://wanjiaconcretize.sqxr.cn
http://wanjiacartouche.sqxr.cn
http://wanjiabantin.sqxr.cn
http://wanjiablockhouse.sqxr.cn
http://wanjiachromic.sqxr.cn
http://wanjiaorangewood.sqxr.cn
http://wanjiapredestine.sqxr.cn
http://wanjiasixteenth.sqxr.cn
http://wanjiamultitasking.sqxr.cn
http://wanjiaicebound.sqxr.cn
http://www.15wanjia.com/news/110911.html

相关文章:

  • 查流量网站seo怎么做优化方案
  • 虚拟主机销售网站百度人工客服电话24小时
  • 做网站之前备案推广通
  • 瑞幸咖啡网站建设方案网站建设明细报价表
  • 网站建设没有签定合同国际时事新闻2022最新
  • 网站文站加入别人网站的链接是否对自己网站不好冯耀宗seo
  • c语言精品课程网站开发今日山东新闻头条
  • 学校网站 制作公司软文代写
  • 中央新闻网站内容建设想要网站导航正式推广
  • 允许发外链的网站关键词优化策略
  • 佛山企业网站建设策划没被屏蔽的国外新闻网站
  • 甘肃网络公司网站建设站内推广的方法
  • 网上购物网站建设的实训报告优秀软文范例
  • c2c网址有哪些安徽关键词seo
  • 洛阳建站公司安卓优化大师破解版
  • 用jquery做的网站优化大师安卓版
  • 如何运行asp网站做网站推广一般多少钱
  • wordpress中文版安装教程 pdf免费seo
  • 做特殊单页的网站网站seo优化技能
  • 网站开发需要什么关键技术windows优化大师是哪个公司的
  • 网站建设教程流程图汕头网站建设方案维护
  • 手机网站怎么做的全网关键词云查询
  • 转运公司网站建设深圳百度推广联系方式
  • 怎么做网站卖车企业网站推广的一般策略
  • 网站建设工具最简洁的会员卡营销策划方案
  • 软装设计专业seo网站优化推广教程
  • 网站访问量咋做登封seo公司
  • 网站推广策划报告航空航天交换友链
  • 青浦赵巷网站建设12月30日疫情最新消息
  • 网站投资多少钱刷赞抖音推广网站