2. 產生 S-DES 的兩支金鑰
string asSort(string a, string sort)
{
string res = "";
for (int i = 0; i < sort.Length; i++)
{
res += a[sort[i] - '0'];
}
return res;
}
void print(string s)
{
for (int i = 0; i < 10; i++)
{
if (i >= s.Length)
{
Console.Write(" ");
}
else Console.Write(s[i]);
Console.Write(' ');
}
Console.Write($" = 0x{Convert.ToInt16(s, 2):x}\n");
}
Console.Write("請輸入10位元的key: ");
var key = Console.ReadLine();
Console.Write("\n輸入 key: ");
print(key);
key = asSort(key, "2416390875");
Console.Write("重排列10: ");
print(key);
key = asSort(key, "1234067895");
Console.Write("左旋轉1 : ");
print(key);
var key1 = asSort(key, "52637498");
Console.Write("Key1輸出: ");
print(key1);
key = asSort(key, "2340178956");
Console.Write("左旋轉2 : ");
print(key);
var key2 = asSort(key, "52637498");
Console.Write("Key2輸出: ");
print(key2);Last updated