解決「Base 64字元陣列的無效長度」 的問題

2021-05-07 22:34:47 字數 1380 閱讀 9766

後來分析才知道是由於位址列中的字元"+"沒有正確解析導致的。

using system;

using system.data;

using system.configuration;

using system.collections;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

using system.io;

using system.text;

using system.security.cryptography;

namespace etahteachvideo.media

public string encryptstring(string value)

public string decryptstring(string value)

catch(exception ex)}}

//參考

des解密時「base-64字元陣列的無效長度」

問題是 在頁面傳送的時候加密了 ,然後解密出來就丟擲異常  跟蹤發現是 ++ 在解析request的時候變成了空格

解決辦法

使用string.replace("+", "%2b")先將空格編碼,然後再作為引數傳給另一頁面傳遞,這樣頁面在提取引數時才會將「%2b」解碼為加號

下面是乙個相關的知識

在使用convert.tobase64string()對字串進行base64編碼時,注意的幾點:

例:string s = "hello";

byte bytes = convert.frombase64string(s);

以上**在執行時會丟擲formatexception異常.提示為:base-64字元陣列的無效長度

原因:當convert.frombase64string方法的引數s的長度小於4或不是4的偶數倍時,將會丟擲formatexception。

例: convert.frombase64string("hell");      // normal.

convert.frombase64string("hell ");     // normal.(忽略空格)

convert.frombase64string("hello!");     // throw formatexception.

convert.frombase64string("hello net"); // normal.(忽略空格)

base64編碼3字元轉化4字元實現

最近學習smtp協議遇到base64編碼加密。特學習一下。嘗試自己實現一下轉化。base64編碼原理 1 base64的編碼都是按字串長度,以每3個8bit的字元為一組,2 然後針對每組,首先獲取每個字元的ascii編碼,3 然後將ascii編碼轉換成8bit的二進位制,得到一組3 8 24bit的...

上傳檔案不落地轉Base64字串

本來採用的方式是 前端對做base64處理,後端組裝下直接呼叫第三方介面,然後將結果返回給前端展示。然而聯調過程中,發現前端對轉換base64字串後,大小擴了近一倍,傳輸到後台後,存在識別不準確,資料丟失的情況,字元太多,後端除錯也比較麻煩。更改前後端呼叫方式,採用前端不進行base64處理,使用檔...

base64編碼中的換行符

先看加密 base64.decode64 subject 但是,如果字串超過一定長度的時候,加密字串中會帶有換行符!這和php中的函式base64 encode 不同,php得出來的加密字串沒有換行符!查了資料,這是base64的資料 base64是mime郵件中常用的編碼方式之一。它的主要思想是將...