/// <summary> /// 创建密钥 /// </summary> /// <returns></returns> public override AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048) { var key = RSAEncryptionProvider.CreateKey(size, KeyType); return(new AsymmetricKey() { PrivateKey = key.PrivateKey, PublickKey = key.PublickKey }); }
public static RSAKey CreateKey(string privateKey, string publicKey, RSAKeySizeType size = RSAKeySizeType.L2048, RSAKeyType type = RSAKeyType.Base64) { using (var rsa = new RSACryptoServiceProvider((int)size)) { return(new RSAKey() { PrivateKey = privateKey, PublicKey = publicKey }); } }
/// <summary> /// 创建密钥 /// </summary> /// <returns></returns> public override AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048) { // 私钥 string prik = ""; // 公钥 string pubk = ""; SMCrypto.SM2.GenerateKeyPair(out prik, out pubk); //获取公钥 私钥 return(new AsymmetricKey() { PrivateKey = prik, PublickKey = pubk }); }
/// <summary> /// 创建 RSA 密钥 /// </summary> /// <param name="size">密钥长度类型,默认为<see cref="RSAKeySizeType.L2048"/></param> /// <param name="keyType">密钥类型,默认为<see cref="RSAKeyType.Xml"/></param> /// <returns></returns> public static RSAKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048, RSAKeyType keyType = RSAKeyType.Xml) { using (var rsa = new RSACryptoServiceProvider((int)size)) { var publicKey = keyType == RSAKeyType.Json ? rsa.ToJsonString(false) : rsa.ToExtXmlString(false); var privateKey = keyType == RSAKeyType.Json ? rsa.ToJsonString(true) : rsa.ToExtXmlString(true); return(new RSAKey() { PublickKey = publicKey, PrivateKey = privateKey, Exponent = rsa.ExportParameters(false).Exponent.ToHexString(), Modulus = rsa.ExportParameters(false).Modulus.ToHexString() }); } }
/// <summary> /// 创建密钥 /// </summary> /// <returns></returns> public abstract AsymmetricKey CreateKey(RSAKeySizeType size = RSAKeySizeType.L2048);