我今天接触了加密技术,我的同事告诉我一个更简单/自定义的方法来实现它,我在下面列出了我的做法,请问这是何种加密或哈希算法?他告诉我这是某种哈希和加密的混合体。对不起,我很新,问题可能有点愚蠢。 :)
以下方法输入一个字符串(例如密码),将其倒序并生成一个字典(添加字典项如下),然后匹配键和值并返回加密数据。
下面的方法将项目添加到字典中,这些项目基本上是基于ASCII代码的。我循环遍历所有的ASCII码,然后将相应的字符添加到字典中。但真正的诀窍在于向字典中添加项目。例如,当我将'A'作为键添加到字典中时,它的值将是'D'。变量“jump”指定了键和值之间的差异。因此,如果我的密码是'ABC',它将返回'DEF'或者如果我颠倒这个东西,它将返回'FED'。
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代码的。我循环遍历所有的ASCII码,然后将相应的字符添加到字典中。但真正的诀窍在于向字典中添加项目。例如,当我将'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;
}