C#用加密安全的伪随机数生成器 (CSPRNG) 生成以太坊地址
生成私钥: 使用RNGCryptoServiceProvider
类(或.NET Core/5+中的RandomNumberGenerator
抽象类)作为CSPRNG来生成一个32字节(256位)的随机数作为私钥。
using (var rng = RandomNumberGenerator.Create())
{
byte[] privateKey = new byte[32];
rng.GetBytes(privateKey);
}
从私钥生成公钥: 使用Nethereum
库(以太坊区块链开发库)来根据私钥生成对应的公钥。Nethereum
封装了secp256k1曲线操作。
var publicKey = Nethereum.Signer.EthECKey.GetPublicAddress(privateKey);
生成以太坊地址: 对公钥应用Keccak-256哈希算法,并取哈希值的最后20个字节作为以太坊地址。
var address = Nethereum.Util.AddressExtensions.ConvertToEthereumAddressString(publicKey);