我目前正在尝试使用C#生成并发送公共RSA密钥.它应该是PEM格式的2048位长密钥.我使用OpenSSL命令成功完成了以下操作(缩短了一些输出):
$ openssl genrsa 2048
Generating RSA private key, 2048 bit long modulus
............................................................+++
............................................................+++
e is 65537 (0x10001)
$ openssl rsa -pubout
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAy1MoBtENHBhYLgwP5Hw/xRGaBPHonApChBPBYD6fiq/QoLXA
RmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBulvciWnZwp9CUQPwsZ8xnmBWlHyru
xTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuaenREvD7Mn0vgFnP7yaN8/9va4q8Lo
...
...
y5jiKQKBgGAe9DlkYvR6Edr/gzd6HaF4btQZf6idGdmsYRYc2EMHdRM2NVqlvyLc
MR6rYEuViqLN5XWK6ITOlTPrgAuU6Rl4ZpRlS1ZrfjiUS6dzD/jtJJvsYByC7ZoU
NxIzB0r1hj0TIoedu6NqfRyJ6Fx09U5W81xx77T1EBSg4OCH7eyl
-----END RSA PRIVATE KEY-----
writing RSA key
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy1MoBtENHBhYLgwP5Hw/
xRGaBPHonApChBPBYD6fiq/QoLXARmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBu
lvciWnZwp9CUQPwsZ8xnmBWlHyruxTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuae
nREvD7Mn0vgFnP7yaN8/9va4q8LoMKlceE5fSYl2QIfC5ZxUtkblbycEWZHLVOkv
+4Iz0ibD8KGo0PaiZl0jmn9yYXFy747xmwVun+Z4czO8Nu+OOVxsQF4hu1pKvTUx
9yHH/vk5Wr0I09VFyt3BT/RkecJbAAWB9/e572T+hhmmJ08wCs29oFa2Cdik9yyE
2QIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
以下代码是我用来使用C#生成公钥的代码:
// Variables
CspParameters cspParams = null;
RSACryptoServiceProvider rsaProvider = null;
StreamWriter publicKeyFile = null;
string publicKey = "";
try
{
// Create a new …Run Code Online (Sandbox Code Playgroud) 我目前在Windows卸载程序实现对所有用户"删除设置",然后走过来一个问题,我不知道她有可能解决.
应用程序使用CredentialManager(keymgr.dll)存储当前用户的凭据条目.让我们调用凭证"X"的目标.在卸载时,应删除所有用户存储的目标为"X"的凭据.卸载程序当然需要管理员权限,但我发现很难完成此任务.
对于当前用户,该命令通常通过cmdkey /delete=:X命令提示符解决.据我所知,cmdkey.exe /list只有帮助列出当前用户的条目,并且无法从其他用户删除本地条目.
我了解到凭据存储为文件C:\Users\_user_\AppData\Local\Microsoft\Credentials夹下的操作系统文件,但我不知道哪些文件是我要删除的条目,删除所有文件对其他应用程序都是危险的.此外,我认为删除操作系统文件将是危险的,并可能有限制(额外的UAC提示?).
Runas命令是我得到的最接近的镜头,但因为它需要用户的密码,这变得非常困难,而不是我想要的卸载程序.我还需要一种方法来获取每个用户的用户名和域并迭代它们.
我宁愿使用其中之一cmd或powershell为此.