作者neo5277 (I am an agent of chaos)
看板C_Sharp
標題[問題] 關於加解密 除了函式庫以外的方式?
時間Thu Nov 12 16:44:16 2015
各位前輩
想請教一下有沒有常規之外的加解密方式
內部使用而已但是又不想用一般的方法。
有沒有像是簡單抽換字面邏輯思考呢?
我手邊有一個是,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