예제 #1
0
        protected override string DeriveAddress(PhantasmaKeys keys)
        {
            ECPoint pKey = ECCurve.Secp256k1.G * keys.PrivateKey;

            var publicKey = pKey.EncodePoint(false).Skip(1).ToArray();

            var kak = SHA3Keccak.CalculateHash(publicKey);

            return("0x" + Base16.Encode(kak.Skip(12).ToArray()));
        }
예제 #2
0
        public void TestSha3Keccak()
        {
            byte[] source = Encoding.ASCII.GetBytes(
                "asdçflkjasçfjaçrlgjaçorigjkljbçladkfjgsaºperouiwa89tuhyjkvsldkfjçaoigfjsadfjkhsdkgjhdlkgjhdkfjbnsdflçkgsriaugfukasyfgskaruyfgsaekufygvsanfbvsdj,fhgwukaygsja,fvkusayfguwayfgsnvfuksaygfkuybhsngfukayeghsmafbsjkfgwlauifgjkshfbilçehrkluayh");

            for (int i = 0; i < 10000; i++)
            {
                var sha3Test   = SHA3Keccak.CalculateHash(source);
                var sha3Target = Base16.Decode("09D3FA337D33E1BEB3C3D560D93F5FB57C66BC3E044127816F42494FA4947A92");     //https://asecuritysite.com/encryption/sha3 , using sha-3 256 bit

                Assert.IsTrue(sha3Test.SequenceEqual(sha3Target));
            }
        }