PrivateKey
PrivateKey[assoc]
表示公开密钥加密系统内一对密钥中的私人密钥.
更多信息
- PrivateKey 对象可以和诸如 Encrypt、Decrypt、Decrypt 这样的函数一起使用.
- 对于加密,如果是用对应的 PublicKey 对象加密的数据可以用特殊的 PrivateKey 对象解密.
- 可以用 GenerateAsymmetricKeyPair 产生相应的密钥对:PrivateKey 和 PublicKey 对象.
- PrivateKey[…]["prop"] 可用于提取私钥的属性.
- PrivateKey 的基本属性包括:
-
"Type" 加密的类型 "PrivateByteArray" 以字节数组形式给出的私钥 "PublicByteArray" 以字节数组形式给出的公钥 "PrivateHexString" 用十六进制字符串给出的私钥 "PublicHexString" 用十六进制字符串给出的公钥 "PrivateKeySize" 私钥的大小(以 bit 为单位) "PublicKeySize" 公钥的大小(以 bit 为单位) - 加密的可能类型包括 "RSA" 和 "EllipticCurve".
- "RSA" 的其他属性包括:
-
"PrivateExponent" 私有指数 "PublicExponent" 公共指数 "PublicModulus" 公共模数 "Padding" 填充模式 - "EllipticCurve" 的其他属性包括:
-
"CurveName" 椭圆曲线的名称(例如,"sec256k1") "PrivateMultiplier" 私有乘数 "PublicCurvePoint" 公共曲线点 "Compressed" 公钥是否是压缩格式 - 在 $CryptographicEllipticCurveNames 中列出了 "CurveName" 的可能的设置.
- PrivateKey[…]["Parameters"] 以关联的形式给出对象中包含的所有信息.
- PrivateKey[…]["Properties"] 给出所有可用属性的列表.
范例
打开所有单元 关闭所有单元基本范例 (2)
keys = GenerateAsymmetricKeyPair[]Encrypt[keys["PublicKey"], "Now is the time..."]Decrypt[keys["PrivateKey"], %]keys = GenerateAsymmetricKeyPair["EllipticCurve"]keys["PrivateKey"]["CurveName"]keys["PrivateKey"]["Properties"]范围 (2)
可以将 PrivateKey 用作有效私钥对象的构造函数.
keys = GenerateAsymmetricKeyPair[]private = keys["PrivateKey"];PrivateKey[<|"Type" -> "RSA", "PrivateExponent" -> private["PrivateExponent"], "PublicModulus" -> private["PublicModulus"]|>]SameQ[%, private]从以十六进制字符串形式给出的现有密钥构建有效的 PrivateKey 对象:
hex = "E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262";hexkey = PrivateKey[<|"Type" -> "EllipticCurve", "CurveName" -> "prime256v1", "PrivateHexString" -> hex|>]int = FromDigits[hex, 16]intkey = PrivateKey[<|"Type" -> "EllipticCurve", "CurveName" -> "prime256v1", "PrivateMultiplier" -> int|>]SameQ[intkey, hexkey]属性和关系 (2)
由 GenerateAsymmetricKeyPair 创建的 PrivateKey 对象包含密钥的一组完整属性:
ec1 = GenerateAsymmetricKeyPair["EllipticCurve"]["PrivateKey"]ec1["Properties"]无需提供所有属性即可重建有效的私钥对象. 对于椭圆曲线,仅指定私有乘数即可:
ec2 = PrivateKey[<|"Type" -> "EllipticCurve", "PrivateMultiplier" -> ec1["PrivateMultiplier"]|>]SameQ[ec1, ec2]ec3 = PrivateKey[<|"Type" -> "EllipticCurve", "PrivateHexString" -> ec1["PrivateHexString"]|>]SameQ[ec1, ec2, ec3]使用 ByteArray 表示形式:
ec4 = PrivateKey[<|"Type" -> "EllipticCurve", "PrivateByteArray" -> ec1["PrivateByteArray"]|>]SameQ[ec1, ec2, ec3, ec4]如果想要重建 RSA 的 PrivateKey 对象,需同时提供私有指数和公共模数:
rsa1 = GenerateAsymmetricKeyPair["RSA"]["PrivateKey"];重新创建与最初从 GenerateAsymmetricKeyPair 获得的对象相同的对象:
rsa2 = PrivateKey[<|"Type" -> "RSA", "PrivateExponent" -> rsa1["PrivateExponent"], "PublicModulus" -> rsa1["PublicModulus"]|>]SameQ[rsa1, rsa2]相关指南
-
▪
- 密码学 ▪
- 密码数论 ▪
- Tezos 区块链 ▪
- 处理 Litecoin 区块链 ▪
- 使用以太坊区块链 ▪
- 使用卡尔达诺区块链 ▪
- 使用 bloxberg 区块链 ▪
- 处理 Bitcoin Cash 区块链 ▪
- 使用比特币区块链 ▪
- 使用 ARK 区块链 ▪
- 区块链
文本
Wolfram Research (2015),PrivateKey,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PrivateKey.html (更新于 2020 年).
CMS
Wolfram 语言. 2015. "PrivateKey." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/PrivateKey.html.
APA
Wolfram 语言. (2015). PrivateKey. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PrivateKey.html 年
BibTeX
@misc{reference.wolfram_2026_privatekey, author="Wolfram Research", title="{PrivateKey}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/PrivateKey.html}", note=[Accessed: 30-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_privatekey, organization={Wolfram Research}, title={PrivateKey}, year={2020}, url={https://reference.wolfram.com/language/ref/PrivateKey.html}, note=[Accessed: 30-October-2026]}