Questions tagged «base64»

Base64是一组编码方案,以ASCII字符串格式表示二进制数据。

5
用于对修改后的base64 URL进行解码/编码的代码
我想对数据进行base64编码,以将其放入URL,然后在HttpHandler中对其进行解码。 我发现Base64编码允许使用'/'字符,这会弄乱我的UriTemplate匹配。然后我发现维基百科有一个“ URL的修改后的Base64”概念: 存在URL变体的经过修改的Base64,其中将不使用填充'=',并且标准Base64的'+'和'/'字符分别被替换为'-'和'_',以便使用URL编码器/解码器不再是必需的,并且对编码值的长度没有影响,通常保留相同的编码形式以供关系数据库,Web表单和对象标识符使用。 使用.NET,我希望将当前代码从基本的base64编码和解码修改为使用“ URL的修改后的base64”方法。有人这样做吗? 要解码,我知道它始于以下内容: string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // Append '=' char(s) if necessary - how best to do this? // My normal base64 decoding now uses encodedText 但是,我可能需要在末尾添加一个或两个'='字符,看起来有点复杂。 我的编码逻辑应该更简单一些: // Perform normal base64 encoding byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // Apply …
113 c#  url  base64  encode  decode 

12
将图像(按路径选择)转换为base64字符串
如何将图像从用户计算机上的路径转换为C#中的base64字符串? 例如,我有图像的路径(格式为C:/image/1.gif),并且希望有一个数据URI,例如data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..代表1.gif返回的图像。
111 c#  image  base64 

16
Python:base64解码时忽略“错误填充”错误
我有一些base64编码的数据,即使其中存在填充错误,我也想将其转换回二进制。如果我用 base64.decodestring(b64_string) 会引发“填充错误”错误。还有另一种方法吗? 更新:感谢您的所有反馈。老实说,提到的所有方法听起来都有些失败,所以我决定尝试使用openssl。以下命令可以使您满意: openssl enc -d -base64 -in b64string -out binary_data
111 python  base64 

2
将文件转换为Base64String然后再次返回
标题说明了一切: 我像这样读tar.gz档案 将文件分成字节数组 将这些字节转换为Base64字符串 将该Base64字符串转换回字节数组 将那些字节写回到新的tar.gz文件中 我可以确认两个文件的大小相同(以下方法返回true),但是我无法再提取副本版本。 我想念什么吗? Boolean MyMethod(){ using (StreamReader sr = new StreamReader("C:\...\file.tar.gz")) { String AsString = sr.ReadToEnd(); byte[] AsBytes = new byte[AsString.Length]; Buffer.BlockCopy(AsString.ToCharArray(), 0, AsBytes, 0, AsBytes.Length); String AsBase64String = Convert.ToBase64String(AsBytes); byte[] tempBytes = Convert.FromBase64String(AsBase64String); File.WriteAllBytes(@"C:\...\file_copy.tar.gz", tempBytes); } FileInfo orig = new FileInfo("C:\...\file.tar.gz"); FileInfo copy = …

9
如何在C#中实现Base64 URL安全编码?
我想在C#中实现Base64 URL安全编码。在Java中,我们有一个公共Codec库,该库为我提供了一个URL安全编码的字符串。如何使用C#实现相同目的? byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode"); string returnValue = System.Convert.ToBase64String(toEncodeAsBytes); 上面的代码将其转换为Base64,但填充了==。有没有办法实现URL安全编码?
105 c#  encoding  base64 

3
电子邮件主题中的动画图标
我知道Data URI,其中base64可以内联使用编码数据(例如图像)。今天,我收到一封电子邮件,实际上是一封垃圾邮件,其中的主题中包含一个动画(gif)图标: 仅此一个图标: 因此,我唯一想到的就是数据URI,以及Gmail是否允许在主体中插入某种表情符号。我看到了电子邮件的完整详细版本,并在下图中指向主题行: 因此,GIF来自=?UTF-8?B?876Urg==?=类似于数据URI方案的编码字符串,但是我无法从中获取图标。这是元素HTML源代码: 长话短说,有很多表情从https://mail.google.com/mail/e/XXX哪里XXX是十六进制数字。他们没有记录在案,或者我找不到。如果这是关于数据URI的,那么如何将它们包含在Gmail的电子邮件主题中?(我将该电子邮件转发到yahoo电子邮件帐户,[?]而不是图标),如果不是,那么如何解析该编码字符串?
103 gmail  base64  data-uri 

6
如何在Linux bash / shell中对图像进行base64编码
我正在尝试对shell脚本中的图像进行base64编码并将其放入变量中: test="$(printf DSC_0251.JPG | base64)" echo $test RFNDXzAyNTEuSlBH 我也尝试过这样的事情: test=\`echo -ne DSC_0251.JPG | base64\` 但仍然没有成功。 我想做这样的事情: curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload 我找到了这个http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html 但仍然没有成功。
102 linux  image  shell  variables  base64 

6
从输入表单获取Base64编码的文件数据
我有一个基本的HTML表单,可以从中获取一些正在Firebug中检查的信息。 我唯一的问题是,在将文件数据发送到服务器之前,我试图对文件数据进行base64编码,然后将其以该格式保存到数据库。 <input type="file" id="fileupload" /> 在Javascript + jQuery中: var file = $('#fileupload').attr("files")[0]; 我有一些基于可用javascript的操作:.getAsBinary()、. getAsText()、. getAsTextURL 但是,这些都不返回可插入的可用文本,因为它们包含不可用的“字符” -我不想在上传的文件中出现“回发”,并且我需要针对特定​​对象的多种形式,因此我很重要获取文件并以这种方式使用Javascript。 我应该如何以一种可以使用广泛使用的Javascript base64编码器的方式获取文件? 谢谢 更新-从这里开始赏金,需要跨浏览器支持!!! 这是我的位置: <input type="file" id="fileuploadform" /> <script type="text/javascript"> var uploadformid = 'fileuploadform'; var uploadform = document.getElementById(uploadformid); /* method to fetch and encode specific file here based on different browsers …

3
如果输入长度不能被3整除,为什么base64编码需要填充?
base64编码中填充的目的是什么。以下是维基百科的摘录: “分配了一个附加的填充字符,可用于将编码的输出强制为4个字符的整数倍(或等效地,当未编码的二进制文本不是3个字节的倍数时);然后在解码时必须丢弃这些填充字符,但当输入的二进制长度不是3字节的倍数时,仍允许计算未编码文本的有效长度(通常对最后一个非填充字符进行编码,以便它代表的最后6位块为零) -用最低有效位填充,在编码流的末尾最多可能出现两个填充字符。” 我编写了一个程序,该程序可以对任何字符串进行base64编码,并对任何base64编码的字符串进行解码。填充解决什么问题?
100 encoding  base64 

5
RegEx解析或验证Base64数据
是否可以使用RegEx来验证或清除Base64数据?这是一个简单的问题,但是导致这个问题的因素是什么使它变得困难。 我有一个Base64解码器,它不能完全依赖输入数据来遵循RFC规范。因此,我面临的问题是可能未将Base64数据分解为78(我认为是78,我必须仔细检查RFC,因此如果确切的数字有误,请不要给我发声)字符。行,或者行不能以CRLF结尾;因为它可能只有CR或LF,也可能没有。 因此,我很难解析这样格式化的Base64数据。因此,无法可靠地解码以下示例。为了简洁起见,我将仅显示部分MIME标头。 Content-Transfer-Encoding: base64 VGhpcyBpcyBzaW1wbGUgQVNDSUkgQmFzZTY0IGZvciBTdGFja092ZXJmbG93IGV4YW1wbGUu 好的,所以解析没有问题,而正是我们期望的结果。在99%的情况下,使用任何代码至少验证缓冲区中的每个字符都是有效的base64字符,都可以正常工作。但是,下一个示例将一把扳手扔进了锅里。 Content-Transfer-Encoding: base64 http://www.stackoverflow.com VGhpcyBpcyBzaW1wbGUgQVNDSUkgQmFzZTY0IGZvciBTdGFja092ZXJmbG93IGV4YW1wbGUu 这是Base64编码的一种版本,在一些病毒和其他东西中,我已经看到它们试图利用某些邮件阅读器,他们希望不惜一切代价来解析mime,而不是严格按照书本或RFC进行解析。如果可以的话。 我的Base64解码器将第二个示例解码为以下数据流。请记住,原始流是所有ASCII数据! [0x]86DB69FFFC30C2CB5A724A2F7AB7E5A307289951A1A5CC81A5CC81CDA5B5C1B19481054D0D 2524810985CD94D8D08199BDC8814DD1858DAD3DD995C999B1BDDC8195E1B585C1B194B8 任何人都有同时解决两个问题的好方法吗?我不确定是否有可能,除了对数据应用了不同的规则进行两次转换并比较结果之外。但是,如果您采用这种方法,那么您信任哪个输出?看来ASCII启发式技术是最好的解决方案,但实际上,该代码涉及的病毒扫描程序又要复杂多少呢?代码,执行时间和复杂性又会增加多少呢?您将如何训练启发式引擎来了解什么是可接受的Base64,什么不是? 更新: 对于这个问题继续得到的观点,我决定发布一个简单的RegEx,该正则表达式已经在C#应用程序中使用了3年,涉及数十万笔交易。老实说,我最喜欢Gumbo给出的答案,这就是为什么我选择它作为选定答案。但是对于使用C#并寻找一种至少能检测出一个字符串或byte []是否包含有效Base64数据的快速方法的人,我发现以下内容对我来说非常有效。 [^-A-Za-z0-9+/=]|=[^=]|={3,}$ 是的,这仅适用于STRING的Base64数据,而不是格式正确的RFC1341消息。因此,如果您要处理此类数据,请在尝试使用上述RegEx之前将其考虑在内。如果您出于其他目的(URL,文件名,XML编码等)使用Base16,Base32,Radix或什至Base64,那么强烈建议您阅读Gumbo在其回答中提到的RFC4648,因为您需要保持良好状态在尝试使用此问题/答案集中的建议之前,请了解实现所使用的字符集和终止符。

9
将base64字符串转换为ArrayBuffer
我需要将base64编码字符串转换为ArrayBuffer。base64字符串是用户输入的字符串,它们将从电子邮件中复制和粘贴,因此在加载页面时它们不存在。我想在javascript中做到这一点,而不可能对服务器进行ajax调用。 我发现这些链接很有趣,但是它们并没有帮助我: ArrayBuffer到base64编码的字符串 这是从ArrayBuffer到base64的相反转换,而不是相反的转换 http://jsperf.com/json-vs-base64/2 这看起来不错,但我不知道如何使用代码。 有没有简单的方法(也许是本地方法)进行转换?谢谢

11
输入不是有效的Base-64字符串,因为它包含非Base 64字符
我有一个REST服务,可以将文件转换为Byte数组,然后转换为Base64字符串,然后读取文件并将其发送到另一个控制台应用程序。该部分可以工作,但是当应用程序接收到相同的流时,它将受到操纵,并且不再是有效的Base64字符串。流中引入了一些垃圾字符。 将流转换回Byte时收到的异常是 输入内容不是有效的Base-64字符串,因为它包含非Base 64字符,两个以上的填充字符或填充字符中的非空白字符 服务中: [WebGet(UriTemplate = "ReadFile/Convert", ResponseFormat = WebMessageFormat.Json)] public string ExportToExcel() { string filetoexport = "D:\\SomeFile.xls"; byte[] data = File.ReadAllBytes(filetoexport); var s = Convert.ToBase64String(data); return s; } 申请时: var client = new RestClient("http://localhost:56877/User/"); var request = new RestRequest("ReadFile/Convert", RestSharp.Method.GET); request.AddHeader("Accept", "application/Json"); request.AddHeader("Content-Type", "application/Json"); request.OnBeforeDeserialization = resp => …
97 c#  file-io  base64 

3
电子邮件签名中的base64编码图像
我必须在电子邮件签名中包含一些图像(公司徽标等)。使用问题电子邮件系统生成的嵌入图像(通常以附件形式发送)和链接图像(需要获得许可才能在收到的电子邮件中显示它们)时,我遇到了各种各样的问题。 我刚刚从交易所收到了一些电子邮件,其中包含徽标的base64图像表示形式,并使用标签进行显示。我正在寻找有关如何在可能的情况下通过电子邮件签名执行此操作的信息(如何为徽标生成base64版本的徽标,以及如何使用该代码才能使其正常工作)? 我已经尝试过一些简单的事情,例如 <body> <span> <img src=.... > </span> </body> 但我得到的只是替代文字,因此我在这里显然做错了。
95 html  image  email  base64 


4
如何使用base64设置图像源
我想将Image源设置为base64源,但是它不起作用: JSfiddle.net/NT9KB <img id="img" src="" /> JavaScript document.getElementById("img").src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg=="

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.