看板 C_Sharp 關於我們 聯絡資訊
各位前輩 想請教一下有沒有常規之外的加解密方式 內部使用而已但是又不想用一般的方法。 有沒有像是簡單抽換字面邏輯思考呢? 我手邊有一個是,string轉成 int的 大概是利用acsii 還原是用取餘數的方式但其實不是很懂他的方法。 羅列如下 ------------------- //加密 string Encrypt(string strSorc) { string strDest = ""; for (int intFt = 0; intFt < strSorc.Length; intFt++) { strDest += ((int)strSorc[intFt] ^ ((int)strkey[intFt % strkey.Length])).ToString() + ","; } return strDest; } //解密 string Decrypt(string[] strSorc) { string strDest = ""; for (int intFt = 0; intFt < strSorc.Length - 1; intFt++) { strDest += (Char)(Convert.ToInt32(strSorc[intFt]) ^ ((int)strkey[(intFt) % strkey.Length])); } return strDest; } ------------------------------ strkey是有定義的字串 類似密鑰 我比較看不太懂 ^ 後面的意思 我的理解是 一整串的數字因為是用,分個丟進去array 以後 for 迴圈一個一個下去 轉型但是 ^ 後面是取餘數 ^ 是其中一方為真就是真 但是下中斷點後不太知道他輸出的過程 ....... 懇請各位解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.32.74.63 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1447317859.A.9B9.html
ssccg: 這只是把每個char跟key string的char做 ^ (exclusive or) 11/12 18:30
ssccg: 取餘數那只是key string長度可能比輸入值短,key string用 11/12 18:30
ssccg: 完一輪再重頭繼續用而已 11/12 18:30
ssccg: 因為 (a^b)^b = a,所以還原 = 加密,你貼的程式碼感覺有錯 11/12 18:33
ssccg: 還原看起來輸入前還要再多做一次string split 11/12 18:36
ssccg: 如果沒有安全性需求,方法要多少有多少隨便做都有 11/12 18:37
ssccg: 有安全性需求的,絕對不要自己寫 11/12 18:38
感謝 我再來研究看看好了 ~~~多謝你 ※ 編輯: neo5277 (111.248.73.245), 11/12/2015 18:52:26
Litfal: 用AES就好啦,好寫效率高還支援硬體加速 11/12 19:51