我今天正在通過加密,我的同事告訴我一個更簡單/自定義的方式來做到這一點,我所做的是在那裏列出的,所以你能告訴我什麼類型的加密或hashign是什麼?他告訴我這是混合了某種哈希和加密。對不起,我是新來的愚蠢問題。 :) 下面的方法需要一個字符串(在我的情況下是密碼)。反轉它並製作字典(添加字典項目在下面列出)並匹配鍵和值並返回加密數據。加密名稱
public static string Encrypt(string source)
{
string enCrypted = "";
try
{
source = Reverse(source);
Dictionary<char, char> sourceTable = AddDictionaryItems();
char[] sourceArray = source.ToCharArray();
StringBuilder encryptedData = new StringBuilder();
foreach (char chr in sourceArray)
{
KeyValuePair<char, char> Pair;
Pair = sourceTable.First(tuple => tuple.Key == chr);
encryptedData.Append(Pair.Value);
}
enCrypted=encryptedData.ToString();
}
catch (Exception ex)
{
}
return enCrypted;
}
以下方法將項目添加到字典中,項目基本上基於ascii代碼。我循環所有的asciis,然後相應的charachters被添加到字典中。但真正的技巧是在字典中添加項目時。例如,當我在字典中添加'A'作爲關鍵字時,它的值就是'D'。變量「jump」指定鍵和值之間的差異。所以如果我的密碼是'ABC',它會返回'DEF'或'FED',如果我逆轉那件事。
public static Dictionary<char, char> AddDictionaryItems()
{
Dictionary<char, char> dc = new Dictionary<char, char>();
try
{
int initial = 33;
int jump = 3;
int final = 127 - jump;
for (int ascii = initial; ascii < final; ascii++)
{
dc.Add((char)ascii, (char)(ascii + jump));
}
for (int ascii = final; ascii < final + jump; ascii++)
{
dc.Add((char)ascii, (char)(initial));
initial++;
}
}
catch (Exception ex)
{
throw ex;
}
return dc;
}
'ABC' - >'DEF'是凱撒密碼的一個實例,它是一種像在高速公路上錯開車道一樣安全的加密方法。 – mmgp
你在這裏得到了一個點:) –