Exemple #1
0
        public static BigInteger Sha256Hash(this string str)
        {
            if (str == null)
            {
                return(BigInteger.Zero);
            }

            var digest = new Sha256Digest();

            byte[] stringBytes = Encoding.UTF8.GetBytes(str);
            digest.BlockUpdate(stringBytes, 0, stringBytes.Length);
            digest.Finish();
            byte[] bytes = new byte[digest.GetDigestSize()];
            digest.DoFinal(bytes, 0);
            return(new BigInteger(bytes));
        }
Exemple #2
0
        public static BigInteger Concatenate(this BigInteger start, params BigInteger[] rest)
        {
            var digest = new Sha256Digest();

            byte[] startBytes = start.ToByteArray();
            digest.BlockUpdate(startBytes, 0, startBytes.Length);
            foreach (var b in rest)
            {
                byte[] blockBytes = b.ToByteArray();
                digest.BlockUpdate(blockBytes, 0, blockBytes.Length);
            }

            digest.Finish();
            byte[] bytes = new byte[digest.GetDigestSize()];
            digest.DoFinal(bytes, 0);
            return(new BigInteger(bytes));
        }