作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1447317859.A.9B9.html
1F:→ ssccg: 这只是把每个char跟key string的char做 ^ (exclusive or) 11/12 18:30
2F:→ ssccg: 取余数那只是key string长度可能比输入值短,key string用 11/12 18:30
3F:→ ssccg: 完一轮再重头继续用而已 11/12 18:30
4F:→ ssccg: 因为 (a^b)^b = a,所以还原 = 加密,你贴的程式码感觉有错 11/12 18:33
5F:→ ssccg: 还原看起来输入前还要再多做一次string split 11/12 18:36
6F:→ ssccg: 如果没有安全性需求,方法要多少有多少随便做都有 11/12 18:37
7F:→ ssccg: 有安全性需求的,绝对不要自己写 11/12 18:38
感谢 我再来研究看看好了 ~~~多谢你
※ 编辑: neo5277 (111.248.73.245), 11/12/2015 18:52:26
8F:→ Litfal: 用AES就好啦,好写效率高还支援硬体加速 11/12 19:51