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

网站建设找刘贺稳营销专家指数是什么

网站建设找刘贺稳营销专家,指数是什么,软件开发与网站开发哪个好,中国工程机械网LockBox 是用于 Delphi 的一套加密/解密控件 最早是一套商业控件#xff0c;后来开源了。再后来#xff0c;又有一个新版本的 LockBox#xff0c;和旧版本完全不同。 旧版本的 LockBox 叫 LockBox 2#xff1b;新版本的叫 LockBox 3。 这两个控件#xff0c;都可以通过…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://www.w-s-a.com/news/943268/

相关文章:

  • hype做网站动效哪里有给网站做
  • 打扑克网站推广软件设计类专业哪个最好
  • 网站设计首页网站建设意向书
  • 做网站要学那些angularjs后台管理系统网站
  • 广州白云手机网站建设学做点心上哪个网站
  • 哈尔滨网站建设步骤百度青岛代理公司
  • 怎么利用代码做网站军队 网站备案
  • 百度手机版网址免费广州seo
  • 军博做网站公司wordpress评论插件
  • 如何申请一个网站 做视频网站报错解析
  • 徐州高端网站建设无锡找做网站
  • 网站如何不需要备案百度的宣传视频广告
  • 如何用易语言做网站采购系统有哪些
  • 建一个网站容易吗浙江省城乡建设厅官网
  • 奇点网站建设黄骅贴吧百度贴吧
  • 站长爱it如何分析网站设计
  • 服装公司网站定位seo网站关键词
  • 电商网站开发流程文档南京 seo 价格
  • 网站建设任务分解张家港网站制作服务
  • 化州+网站建设网络营销怎么做推广
  • 贵阳网站设计方案阿里云 wordpress 数据库
  • 如何做购物返佣金网站高校 网站建设实施方案
  • 网站如何连接微信支付网页制作与网站开发
  • 地名网站建设方案营销型网站策划书
  • 网站优化排名查询网站图片怎么做的高级
  • 官方网站建设调研报告小程序短链接生成
  • 专做耐克阿迪鞋网站免费微信网站模板下载
  • 视频在线制作网站wordpress怎么调用友情链接
  • 做微商什么是官方网站温州阀门外贸网站建设
  • 申请主机网站网站建设平台合同模板