当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

作者:精品下载站 日期:2024-12-14 07:22:07 浏览:16 分类:玩电脑

PowerShell:使用证书(公钥/私钥)加密和解密数据


周围有很多加密和解密工具。 PowerShell 是 Windows 内置工具,您也可以将其用于加密。在这篇博文中,我将研究数据的加密和解密。我的追随者知道接下来会发生什么:我不太关心第 3 方工具,是的,当然,我将只使用 Windows PowerShell。

介绍

首先我们需要一个证书。该证书将包含私钥和公钥。有了私钥我们就可以解密数据。使用公钥我们可以加密数据。这意味着如果有人拥有我的公钥(我可以将其交给某人而无需担心),他就可以加密发送给我的数据。而我是这个星球上唯一能解密它的人。因为我是唯一拥有私钥的人。

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

使用 New-SelfSignedCertificate 创建证书

首先,我使用 PowerShell 创建代码签名证书。随意命名。


New-SelfSignedCertificate -DnsName pewa2303 -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsage KeyEncipherment,DataEncipherment, KeyAgreement -Type DocumentEncryptionCert

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

要查看证书,请运行 certmgr.msc。


certmgr.msc

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

哦,真可惜。 ? 我已经承诺我只会使用 PowerShell。好的,好的,这是在 PowerShell 中显示您的证书的命令:


Get-Childitem -Path Cert:\CurrentUser\My -DocumentEncryptionCert

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

记住您的证书的主题名称。我们在下一步中将需要它。

加密数据

Protect-CmsMessage cmdlet 对内容进行加密。确保您运行的是 PowerShell 5.0 或更高版本。


(Get-Host).Version.Major

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

注意 To 参数。您必须在那里提供您的证书名称。我的证书名称是 cn=pewa2303。加密的数据将存储在文件中。


"This is a secret message" | Protect-CmsMessage -To cn=pewa2303 -OutFile C:\Temp\secret.txt

完成后,用记事本打开该文件以查看发生了什么。不错的代码?

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

数据解密

要解密加密数据,请运行 Unprotect-CmsMessage。确保您使用创建证书的用户帐户登录并拥有私钥

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据


Unprotect-CmsMessage -Path C:\Temp\secret.txt

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

好一个。

当其他用户尝试打开该文件时会发生什么? Petra 无法解密数据。她没有私钥。

[玩转系统] PowerShell:使用证书(公钥/私钥)加密和解密数据

Unprotect-CmsMessage :封装数据消息不包含
指定收件人。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯