Exemplo n.º 1
0
 public void DecodeTest()
 {
     RSA rsa = new RSA();
     var data =
         rsa.Decode(@"<RSAKeyValue><Modulus>nX8JqOtKsttNSx5XMxQ8UIprhvbbXy3yTMU04S69ZInQYFUFHas1HWEp26QUL4LIJ6CQ+698r12KbDZh7MOT7HV3Ia/aQ34Oge7AVOX0Y0E+95f7gxcb9pllsUD2lFos/FW0LuoBicxwFojcLuuc3tUoElD2oGFZ2OusBoDjEMk=</Modulus><Exponent>AQAB</Exponent><P>zf5IwDrilxz7IZCkdDvgKHlRDg22QRgD5RoCR4HmTxD6nbWESXBCdXUW5H8CgSgEJoYL4OJ4NSa3LUMnEiTZWQ==</P><Q>w7rXm3C7IS6NKoD1zrFF/wNuBr+esfsysu7XXAGxTrSt4QjSNCv1cWVYuCbSP4HPg5tor1XfUKldiTSyVoOU8Q==</Q><DP>Tmv+WmCQnyMDYHXmhfG9lusItqb1ubZg1TmfoIWNnpBCOQQ/xo2cX4ciHf9UfsMzQU9K+mR9iw6gMfUczMWGkQ==</DP><DQ>r+rDlEKq/fTQDg6gXyh3p+9WOZyKLp9+ftIqH9ipmvrLeQGrpBaKYGPdbI3/0/KBJ2FLoqNEtkOy/Pmu/BEBkQ==</DQ><InverseQ>brHt8NacSwbVIEshmrfaXoIuIirTfV2aP4hPmVvs4mQXDwRTZpv5oabczdtwyYFMKm2yWTo+OtpB9renIJ4oog==</InverseQ><D>WdF8MdBV3mCA2Qkpk6DDsO7v2Z1oiARM/Ykt2gnsyqxpoLZ732qnNOUXmQIe3OWJvkesx0xSIDSJX6M3/22eKsPMtTdMDxAUXIdxfFDDLQ5GnDH7oSa9srpUN0a8r/PGPaMGu3E96xGyYequKIf76W+VK1wjaKuDCtmIsvrxXYE=</D></RSAKeyValue>",
             "ctTiZYcYrYCczhYYq7smP1S32biNPDjxHA9hBJ0JVvPSCBoO+LV8zd/eOTXbL1m3r1+0l3PjlYd28WqnwP7Hsjcj1FfEOvlu/KmfKlk2o+DtdCTrFXhrM8v2HxLsXjdRH4g+dAUND2DwXXRxVP7c2YCNyrsU/wznIMwIBZKbBMk=");
     Assert.IsTrue(data == "你好,yz");
 }
Exemplo n.º 2
0
        public static void Encode_Decode()
        {
            var rsa        = new RSA(new BigInt(111119), new BigInt(1717151));
            var openKeys   = rsa.GetOpenKeys();
            var encode     = RSA.EncodeFromFile(@"C:\Users\lizas\RiderProjects\AIASLab1\Lab1Tests\text.txt", openKeys.Item1, openKeys.Item2);
            var closedKeys = rsa.GetClosedKeys();
            var decode     = RSA.Decode(encode, closedKeys.Item1, closedKeys.Item2);

            using (var sr = new StreamReader(@"C:\Users\lizas\RiderProjects\AIASLab1\Lab1Tests\text.txt"))
            {
                var text = sr.ReadToEnd();
                Assert.That(text.GetHashCode() == decode.GetHashCode());
            }
        }
Exemplo n.º 3
0
        public void TestRSA(decimal input, decimal encodePower, decimal modulus, decimal totient)
        {
            var rsa         = new RSA(encodePower, modulus);
            var decodePower = Modular.ModInverse(rsa.EncodePower, totient);

#if DEBUG
            OutputHelper.WriteLine($"decodePower = {decodePower} = ModInverse(encodePower = {rsa.EncodePower}, totient = {totient})");
            var product = rsa.EncodePower * decodePower % totient;
            Assert.True(product == 1, $"1 != {product} = encodePower = {rsa.EncodePower} * decodePower = {decodePower} % totient = {totient}");
#endif
            var encoded = rsa.Encode(input);
#if DEBUG
            OutputHelper.WriteLine($"{encoded} = Encode(input = {input}, encodePower = {rsa.EncodePower}, modulus = {rsa.Modulus})");
#endif
            var decoded = rsa.Decode(encoded, totient);
#if DEBUG
            OutputHelper.WriteLine($"{decoded} = Decode(encoded = {encoded}, decodePower = {decodePower}, modulus = {rsa.Modulus})");
#endif
            Assert.True(decoded == input, $"decoded = {decoded} != input = {input}");
        }