後來分析才知道是由於位址列中的字元"+"沒有正確解析導致的。
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郵件中常用的編碼方式之一。它的主要思想是將...