私はインターネット上で見つけた解読関数を翻訳しています。この関数はPythonで書かれており、私はそれをC#に翻訳しています。私はそれがかなりうまくいっている(うまくいけば)が、構文のいくつかは読んでいるのが苦労している。PythonからC#への解読関数の翻訳
ここでは、元の関数です:ここ
def decrypt_signature(s):
arr = list(s)
arr[0], arr[52] = arr[52%len(arr)], arr[0]
arr.reverse()
arr = arr[3:]
arr[0], arr[21] = arr[21%len(arr)], arr[0]
arr.reverse()
arr = arr[3:]
arr.reverse()
return "".join(arr)
そして、私がこれまでに翻訳したものです:彼らは書くとき
private string DecryptSig(string s)
{
//arr = list(s)
char[] arr = s.ToArray();
//arr[0], arr[52] = arr[52%len(arr)], arr[0]
var temp = arr[0];
arr[0] = arr[52 % arr.Length];
arr[52 % arr.Length] = temp;
//arr.reverse()
arr.Reverse();
//arr = arr[3:]
//?????????????????
//arr[0], arr[21] = arr[21 % len(arr)], arr[0]
temp = arr[0];
arr[0] = arr[21 % arr.Length];
arr[21 % arr.Length] = temp;
//arr.reverse()
arr.Reverse();
//arr = arr[3:]
//??????????????????
//arr.reverse()
arr.Reverse();
//return "".join(arr)
return "" + new string(arr);
}
著者が何をするんARR =のARR [3:]?私にとっては、配列の最初の3つの値を元のインデックスに戻すように見えます。
それは要素3以降を使用して新しいリストを作ります。例えば。 '[1,2,3,4,5] [3:] == [4,5]' – smarx
これは暗号化ではなく、ちょっと変わったエンコーディングです。 – zaph