2011年5月3日 星期二

asp 實作 base64 加/解密

┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 1. Base64 定義
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base64是一種使用64基的位置計數法。它使用2的最大次方來代表僅可打印的ASCII 字符。這使它可用來作為電子郵件的傳輸編碼。在Base64中的變量使用字符A-Z、a-z和0-9 ,這樣共有62個字符,用來作為開始的64個數字,最後兩個用來作為數字的符號在不同的系統中而不同。一些如uuencode的其他編碼方法,和之後binhex的版本使用不同的64字符集來代表6個二進制數字,但是它們不叫Base64。


┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 2. 執行結果
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 3. 程式碼
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 4. 心得
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
base64 的好處就是可以把原本用數字 0~255 來表示的字元, 改成用 0~63 來表示, 好處是資料可以放在URL裡被傳遞, 也可以避免掉部份 cross site script 的問題.

下圖是我被植入 script site script 的結果, 因為把字串放到 value="" 屬性裡, 因為變數內容有雙引號, 所以字串就跳脫了.



┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 5. 資料來源
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
將UTF-8編碼的字串轉成base64編碼
http://achtung.webhop.net/allenj/?p=628

沒有留言:

張貼留言

Facebook 留言板