首页 > 其他分享 >delphi base64的“坑”

delphi base64的“坑”

时间:2024-02-19 20:45:17浏览次数:22  
标签:LEncoding Base64 delphi base64 TBase64Encoding 签名

delphi base64的“坑”

使用 Delphi 原生的Base64编码(System.NetEncoding 单元) ,编码后的字符串每隔76个字符会增加一个回车换行(#13#10),这样就导致和其他语言对接的时候出现问题,特别是Base64以后再进行签名,例如MD5签名,就会导致签名不一致。回车换行不容易看到,所以查找问题比较困难。

S := TNetEncoding.Base64.Encode(SourceStr);

解决方法:S := S.Replace(#13#10,'');

第二种方法就是直接使用 TBase64Encoding 类:

uses system.NetEncoding;

var LEncoding: TBase64Encoding; begin LEncoding := TBase64Encoding.Create(-1,''); S := LEncoding.Encode(SourceStr); LEncoding.Free; end;

  

标签:LEncoding,Base64,delphi,base64,TBase64Encoding,签名
From: https://www.cnblogs.com/hnxxcxg/p/18021927

相关文章

  • electron delphi winform wpf qt的对比
    Electron、Delphi、WinForms、WPF和Qt都是用于开发桌面应用程序的工具或框架,它们各自有一些独特的优点和适用场景。以下是对这些工具的简要对比:Electron:基于Web技术(HTML、CSS和JavaScript)的跨平台桌面应用程序开发框架。使用Chromium渲染引擎提供强大的页面渲染能力。适用......
  • Delphi 12 Patch1
    如果你升级到Delphi12,这个补丁是必须打的。官方也发布了ISO版本,如这个需要重新安装。https://altd.embarcadero.com/download/radstudio/12.0/radstudio_12_0_inline_116924a.isoQuality Portal Issues Addresses by This Patch (notice QP remains accessible in r......
  • Base64编码的优点与缺点
    Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式。它被广泛应用于数据传输和存储,以提升数据的可读性、可传输性和安全性。Base64编码解码|一个覆盖广泛主题工具的高效在线平台(amd794.com)https://amd794.com/base64encordec一、Base64编码的优点:可打......
  • delphi 主窗体的 生命周期,如何 自己管理 而不是 自动管理
    在Delphi中,窗体的生命周期通常是由VCL(VisualComponentLibrary)自动管理的。但是,你可以通过一些手段来自己管理主窗体的生命周期,而不是完全依赖于自动管理。要自己管理主窗体的生命周期,你可以考虑以下几个方面:创建窗体:你可以手动创建窗体实例,而不是依赖于Application.Cre......
  • 程序语言多态(overide) - delphi 版本
    前言:所有程序语言都差不多,特写一篇delphi版本的多态;其它语言类同。都是一些别人规定的语法而已,别人用一个下午设计一门语言,愚弄天下程序员一生;不要过于纠结。。。。。。。。TObject的构造和析构方法从这说起,先看下定义:TObject=classpublicconstructorCreate;......
  • Delphi网络组件
    TIdTCPClient组件介绍TIdTCPClient组件实现了TCP的客户端部分,它封装了一个完整的TCP客户端,包括对套接字的支持。该组件可用来作为实现专门协议的组件父类,TIdDayTime、TIdEcho、TIdFinger、TIdFT、TIdGopher、TIdHTTP、TIdNNTP、TIdPOP3、TIdQUOTD、TidTelnet以及TIdWhois组件都是......
  • delphi关闭程序
    Close1.只关闭本窗体2.当Close是一个主窗体时,程序会退出。3.Close会发生FormClose事件,FormCloseQuery事件,触发OnClose事件;4.主窗体close以后程序就Application.Terminate了5.子窗体close以后。没释放,还可以Show出来。6.也是说主窗口的Close方法其实也是调用Application的Term......
  • delphi GUID相关操作
    GUID相关操作代码procedureTForm1.Button1Click(Sender:TObject);varGUID1,GUID2:TGUID;begin//创建GUIDifCreateGUID(GUID1)<>0thenMemo1.Lines.Add('创建失败');//转换为字符串Memo1.Lines.Add(GUIDToString(GUID1));//分段输出Memo1.Li......
  • 《数据篇》base64,编码和解码
    链接:https://blog.csdn.net/qq_40006446/article/details/80236496关于base64编码Encode和Decode编码的几种方式Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料......
  • delphi 里 多用TArray 而不是 array of
    今天写代码发现个bug,是delphi编译器核心层面的:unitddx.att;interfaceusesSystem.Generics.Collections,System.Rtti;typexstring=string;InstanceName=class(TCustomAttribute)privateFvalue:arrayofstring;publicconstructorCreate(......