坏的PKCS7 Padding错误。无效长度 106
我正在尝试加密并解密以下功能,但是,它会导致错误的填充错误. 如果我将PaddingMode设置为None它返回日志中的一些alpha字符和随机符号. 我可能缺少设置正确结构的内容,如下所示: Cipher Rijndael(AES) 块大小128位(16个字节) 模式CBC(密码块链)键 MD5哈希密码 iv与键 相同 数据编码base64字符 UTF-8编码 任何帮助解决此错误的帮助以及确保满足上述结构的任何帮助将不胜感激!谢谢 错误 CryptographicException: Bad PKCS7 padding. Invalid length 106. Mono.Security.Cryptography.SymmetricTransform.ThrowBadPaddingException (PaddingMode padding, Int32 length, Int32 position) (at /Users/buildus
0 2024-04-16
编程技术问答社区
在序列化时将字符串属性值转换为base64
有人知道,当您序列化对象时,是否可以将类中的某些值转换为base64?我需要一种标记属性的方法,以表明它需要将其导出为base64.例如: using Newtonsoft.Json; public class MyFoo { public string Value1 { get; set; } [ExportThisValueAsBase64] public string Value2 { get; set; } } public void WriteJSON(MyFoo myFoo) { var contentsToWriteToFile = SerializeObject(myFoo, Formatting.Indented); } 预期的输出将是: { "Value1": "A String", "Value2": base64encodedvalue } 我还需要一种方法来读取从base64到类中的字符串属性的值.
0 2024-04-16
编程技术问答社区
验证JWT令牌的签名 c#
我有一些问题来验证我得到的JWT令牌的签名.令牌与HS256签名.我尝试创建签名以证明收到的代码是: JwtSecurityToken token = tokenHandler.ReadJwtToken(tokenString); byte[] keyBytes = Encoding.UTF8.GetBytes("secret"); HMACSHA256 hmac = new HMACSHA256(keyBytes); byte[] signatureBytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(token.RawHeader + "." + token.RawPayload)); string signature = Convert.ToBase64String(signatureBytes); 我从接收令牌中获得的签名是: pYscLlinuNhO-sFyEIRRLZP7yrl8GopGJ3I6QSxg2tU
0 2024-04-16
编程技术问答社区
将Base64字符串转换为BitmapImage C# Windows Phone
我从服务器接收一个image/jpeg; base64字符串. 如何将此字符串转换为位图像并设置为image.source? string imgStr = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAQABAAD .... "; BitmapImage bmp = Base64StringToBitmap(imgStr); myImage.Source = bmp; 预先感谢! 解决方案 我找到解决方案的解决方案: public static BitmapImage Base64StringToBitmap(string base64String) { byte[] byteBuffer = Convert.FromBase64String(base64String); MemoryStream memoryStream = new MemoryStream(byteBuffer); mem
0 2024-04-16
编程技术问答社区
C#和Java之间的Base64差异
image是图像文件的字符串. 我的代码如下: Convert.ToBase64String(image); 和java中的代码如下: org.apache.commons.codec.binary.Base64.encodeBase64(image.getBytes()) 结果不同. 有人说是因为 java字节:-128至127 c#字节:0至255 但是我该如何解决?如何在Java中实现C#'S Convert.ToBase64String()? 我需要与使用Java相同的结果. 解决方案 您是base64编码 string ?您想做什么?您首先需要将字符串转换为一系列字节,选择一个编码,例如UTF-8或UTF-16. 我的猜测是您设法在双方都使用了不同的编码. Java's String.GetBytes()使用默认的charset(可能类似于西方Windows版本上的Latin1).对于C#,您没有发布相关代码.
0 2024-04-16
编程技术问答社区
无法从base64解码JWT有效载荷
我将从请求标题中解码JWT令牌,看起来像这样: eyJzdWIiOiIxIiwiZXZlbnRfaWQiOiI3ZTA3Y2JmNC0wYjYyLTQ1MzMtYmE5ZC1mZGFjNDkyNTNjZTUiLCJpYXQiOiIxNTkwODk4Mzg1IiwiZXhwIjoiMTU5MDkwMTk4NSIsImlzcyI6ImxvY2FsaG9zdDo0NDM4NyIsInRpbWV6b25lX29mZnNldCI6LTcsInVzciI6Im1pbmcuaGlldS4xMzEyIiwiYWxpYXMiOiJNaW5nIEhpZXUiLCJwaG9uZSI6IjA4NDQ1OTAyNTIiLCJlbWFpbCI6ImhpZXVhbWlAZ21haWwuY29tIn0 public static string Base64Decode(string base64EncodedData) { var base64EncodedBytes = Convert.FromB
0 2024-04-16
编程技术问答社区
Base64图像不显示在RDLC报告的Render PDF中
我正在尝试使用rdlc Report 中的参数(@CustomerSign)显示映像(base64 string)(我正在从报告中渲染PDF文件,并且我看到了PDF文件) 我已经配置了以下图像属性: 选择图像来源:Database 使用此字段: =Convert.FromBase64String(Parameters!CustomerSign.Value) 使用此MIME类型:image/png 和传递参数: ReportParameter CustomerSign = new ReportParameter("CustomerSign", obj.SignImage); rptvw.LocalReport.SetParameters(CustomerSign); 但是显示红十字会[X]而不是图像的图像不会给出错误! 有什么问题? 我还尝试过:如何将PNG图像(作为存储器流)呈现到.NET REPORTING VIEWER REPORK
0 2024-04-15
编程技术问答社区
rtf文件的编码
我得到一个代表RTF-File的base64编码字符串. 如果我查看原始文本表示(在base64编码之前),我会看到字符序列F¸r.当在观看者中显示时,这应该代表Für. RTF-File的标题包含ansicpg1252,因此应该是编码,除非另有更改(逃逸序列,字体定义,..). 我现在的问题是,我无法将基本64字符串正确解码为其原始表示形式.我再也不会得到F¸r了.相反,我有Für甚至F\'fcr.通过此,在观众中显示解码的RTF时,Umlaut的表示是错误的. 那么RTF文件的原始编码是什么?或这里出了什么问题? 您可以查看示例文件在这里. this 是我得到的基本64编码字符串. 编辑: 我没有编码的代码,但我认为我可以重建它.这是我的代码: string path = "/some/path/ltxt1 Kopie.rtf"; byte[] document = File.ReadAllBytes(path); string base64
0 2024-04-14
编程技术问答社区
在C#中对Java编码的Base64字符串进行解码
我有一个base64编码的字符串,该字符串在Java中编码: string s = "x8QeoAdVOAwpKHAeXIxEticayZLMx7RP_baVdSpDSLLea5TZMxRT-IX93lA05MEUzmwtOvd6WLRBluLchZz2EJSHsFfxxtPQF1VEFv4rA5w=" 我正在尝试使用以下语句在C#中解码它. string s = "x8QeoAdVOAwpKHAeXIxEticayZLMx7RP_baVdSpDSLLea5TZMxRT-IX93lA05MEUzmwtOvd6WLRBluLchZz2EJSHsFfxxtPQF1VEFv4rA5w=" var decodedBytes = System.Convert.FromBase64String(s); ,但我得到了错误: 输入不是有效的base-64字符串,因为它包含一个非基本64个字符,超过两个填充字符或填充字符中的非法字符. 我在做什么错?我可以清楚地看到没有非
0 2024-04-13
编程技术问答社区
C#: 使用TextBox.WordWrap的多行文本框显示长的Base64字符串
我有一个文本框来显示一个很长的base64字符串. TextBox.Multline = true和TextBox.WordWrap = true. 问题是由文本框本身的自动词架检测引起的. base64字符串作为base64编码的64个字符之一.因此,文本框将在"+"字符上包装它,这不是我想要的(因为使用可能会认为"+"字符周围有一个newline字符). 我只想在文本框中显示在mulitline模式中的base64字符串,但是没有单词边界检测,也就是说,如果TextBox.Width只能包含80个字符,则每行应具有80个字符,除了最后一行. 解决方案 智能包装太智能了,无法实现您的目的.只需保持Multiline,关闭WordWrap并自己包装文字: public IEnumerable SimpleWrap(string line, int length) { var s = line; while (s.Length >
0 2024-04-13
编程技术问答社区
从base64解码后的音频片段有噪音
我在base64中编码了WAV文件(资源/声音中的audioclipname.txt). 然后我尝试解码它,从中播放一个有声lip,然后像这样播放: public static void CreateAudioClip() { string s = Resources.Load ("Sounds/audioClipName").text; byte[] bytes = System.Convert.FromBase64String (s); float[] f = ConvertByteToFloat(bytes); AudioClip audioClip = AudioClip.Create("testSound", f.Length, 2, 44100, false, false); audioClip.SetData(f, 0); AudioSource as = GameObject.Find
0 2024-04-13
编程技术问答社区
如何将一串文本从Base64解码成一个字节数组,并在不破坏数据的情况下获得这个字节数组的字符串属性?
好,所以我有一串文本,在基础64中编码如下: string myText = "abcBASE64TEXTGOESHEREdef=="; // actual string is 381 characters long with trailing '==' 然后,我将字符串从基础64转换为字节数组,如: byte[] decodedFromBase64 = Convert.FromBase64String(myText); 在这一点上,我想获得此字节数组的字符串值,并将其保存在文本文件中,而没有数据丢失或损坏.下面的代码似乎没有这样做: string myDecodedText = Encoding.ASCII.GetString(decodedFromBase64); StreamWriter myStreamWriter = new StreamWriter("C:\\OpenSSL-Win32\\bin\\textToDecrypt.txt"); mySt
0 2024-04-13
编程技术问答社区
Base64字符串抛出无效字符错误
即使我不应该,我也会继续遇到base64字符错误. 该程序获取XML文件并将其导出到文档.如果用户需要,它也会压缩文件.压缩正常工作,并返回一个编码UTF-8并写入文件的base64字符串. 是时候将文档重新加载到程序中时,我必须检查其是否压缩,该代码简单: byte[] gzBuffer = System.Convert.FromBase64String(text); return "1F-8B-08" == BitConverter.ToString(new List(gzBuffer).GetRange(4, 3).ToArray()); 它检查字符串的开头,查看其中是否有GZIPS代码. 现在,我所有的测试都起作用.我采用一根字符串,压缩它,解压缩并将其与原件进行比较.问题是当我从ADO RecordSet返回字符串时.字符串正是写入文件的内容(最后在结尾增加了" \ 0",但是我认为甚至没有任何事情,甚至修剪了它仍然可以扔掉).我什至将整
0 2024-04-13
编程技术问答社区
在C#或Java中进行Base64解码
我有一个带有以下标头的base64编码对象: application/x-xfdl;content-encoding="asc-gzip" 进行对象解码的最佳方法是什么?我需要剥离第一行吗?另外,如果我将其变成字节数组(字节[]),我该如何取消gzip? 谢谢! 我认为我最初拼错了.通过说标题是 application/x-xfdl;content-encoding="asc-gzip" 我的意思是这是文件的第一行.因此,为了使用Java或C#库来解码文件,是否需要剥离此行? 如果是这样,剥离第一行的最简单方法是什么? 解决方案 我能够使用以下代码将.xfdl文档转换为Java dom文档. 我使用 iharder's base64 base64 base64 base64 decode. private static final String FILE_HEADER_BLOCK = "application/v
0 2024-04-13
编程技术问答社区
将一个非常大的二进制文件逐步转换为一个Base64String。
我需要帮助将非常大的二进制文件(zip文件)转换为base64string,然后再次返回.这些文件太大,无法一次加载到存储器中(它们抛出OutofMemoryExceptions),否则这将是一个简单的任务.我不想单独处理zip文件的内容,我想处理整个zip文件. 问题: 我可以将整个ZIP文件(测试尺寸从1 MB到800 MB不等),为BASE64STRING,但是当我将其转换回时,它会损坏.新的zip文件是正确的大小,它被Windows和Winrar/7-Zip等识别为zip文件,我甚至可以在zip文件中查看,并在具有正确的尺寸/属性的内容中查看内容,但是当我尝试从zip文件中提取,我得到:"错误:0x80004005",这是一般错误代码. 我不确定腐败在哪里或为什么发生.我已经进行了一些调查,我注意到以下内容: 如果您有一个大的文本文件,则可以将其转换为base64String,而无需问题.如果在整个文件上调用Convert.ToBase64String产生
0 2024-04-12
编程技术问答社区
C# Byte[] to Url Friendly String
我正在为我放在一起的简单网站上处理快速验证码生成器,我希望通过页面URL中的一个加密密钥.我可能可以轻松地将其作为查询字符串参数做到这一点,但是我也不希望(仅仅因为查询字符串没有其他东西)... 我的加密代码会产生一个字节[],然后使用convert.tobase64string(byte [])转换为字符串.但是,该字符串仍然不太友好,因为它可以包含'/'and'='之类的东西.有人知道.NET框架中有更好的功能将字节数组转换为URL友好字符串吗? 我对system.web.httputitions.urlencode()及其等效物了解全部了解,但是,它们仅适用于查询字符串参数.如果我在路径内部编码一个'=',我的Web服务器会带回400个不良请求错误. 无论如何,这不是一个关键问题,但希望有人可以给我一个不错的解决方案 **编辑:为了绝对确切确切地使用字符串,我认为我会提供更多信息. 由我的加密算法产生的字节[]应通过某种算法进行馈送,以使其成为URL友
0 2024-04-12
编程技术问答社区
Base64编码的字符串到文件
我有一个base64编码字符串. 如何将此base64编码字符串写入文件? 解决方案 尝试以下方法: File.WriteAllBytes(@"c:\yourfile", Convert.FromBase64String(yourBase64String));
0 2024-04-12
编程技术问答社区
在Windows Phone上用C#将base64字符串转换为图像
我有一个base64字符串,我想将其转换为图像并将图像控件的源设置为结果. 通常,我会使用Image.FromStream进行操作,类似于此: Image img; byte[] fileBytes = Convert.FromBase64String(imageString); using(MemoryStream ms = new MemoryStream()) { ms.Write(fileBytes, 0, fileBytes.Length); img = Image.FromStream(ms); } 但是,Image.FromStream方法在Windows Phone 上不存在,而随意搜索仅出现取决于该方法的结果. 解决方案 您可以使用这样的方法: public static BitmapImage base64image(string base64string) { byte[] fileByt
0 2024-04-12
编程技术问答社区
从字节数组到base64的转换和返回
我正在尝试: 生成一个字节数组. 将该字节数组转换为base64 将该基本64字符串转换回字节数组. 我已经尝试了一些解决方案,例如问题. 由于某种原因,初始字节和最终字节数组不匹配.这是使用的代码: using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { byte[] originalArray = new byte[32]; rng.GetBytes(key); string temp_inBase64 = Convert.ToBase64String(originalArray); byte[] temp_backToBytes = Encoding.UTF8.GetBytes(temp_inBase64); } 我的问题是: 为什么" OriginalArray"和"
0 2024-04-11
编程技术问答社区
指南到base64,用于URL
问题:有更好的方法吗? vb.net Function GuidToBase64(ByVal guid As Guid) As String Return Convert.ToBase64String(guid.ToByteArray).Replace("/", "-").Replace("+", "_").Replace("=", "") End Function Function Base64ToGuid(ByVal base64 As String) As Guid Dim guid As Guid base64 = base64.Replace("-", "/").Replace("_", "+") & "==" Try guid = New Guid(Convert.FromBase64String(base64)) Catch ex As Exception Throw New Excep
2 2024-04-11
编程技术问答社区