using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
public class Test
{
public static void Main(string[] args)
{
if (args.Length < 1) {
Console.WriteLine("usage: hashlist.exe 入力ファイル [出力ファイル]");
return;
}
var inFile = args[0];
var outFile = args.Length >= 2 ? args[1] : "result.txt";
if (!File.Exists(inFile)) {
Console.WriteLine("Error: 入力ファイルが見つかりません");
return;
}
var sha256 = SHA256.Create();
File.WriteAllLines(outFile,
File.ReadAllLines(args[0])
.Select(_ => BitConverter.ToString(sha256.ComputeHash(Convert.FromBase64String(_))).Replace("-", "").ToLower())
);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5OwpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQoJewoJCWlmIChhcmdzLkxlbmd0aCA8IDEpIHsKCQkJQ29uc29sZS5Xcml0ZUxpbmUoInVzYWdlOiBoYXNobGlzdC5leGUg5YWl5Yqb44OV44Kh44Kk44OrIFvlh7rlipvjg5XjgqHjgqTjg6tdIik7CgkJCXJldHVybjsKCQl9CgkJdmFyIGluRmlsZSA9IGFyZ3NbMF07CgkJdmFyIG91dEZpbGUgPSBhcmdzLkxlbmd0aCA+PSAyID8gYXJnc1sxXSA6ICJyZXN1bHQudHh0IjsKCQkKCQlpZiAoIUZpbGUuRXhpc3RzKGluRmlsZSkpIHsKCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkVycm9yOiDlhaXlipvjg5XjgqHjgqTjg6vjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKTsKCQkJcmV0dXJuOwoJCX0KCQl2YXIgc2hhMjU2ID0gU0hBMjU2LkNyZWF0ZSgpOwoJCUZpbGUuV3JpdGVBbGxMaW5lcyhvdXRGaWxlLAoJCQlGaWxlLlJlYWRBbGxMaW5lcyhhcmdzWzBdKQoJCQkuU2VsZWN0KF8gPT4gQml0Q29udmVydGVyLlRvU3RyaW5nKHNoYTI1Ni5Db21wdXRlSGFzaChDb252ZXJ0LkZyb21CYXNlNjRTdHJpbmcoXykpKS5SZXBsYWNlKCItIiwgIiIpLlRvTG93ZXIoKSkKCQkpOwoJfQp9