编码/解码 RealVNC 密码
我正在尝试编写可以远程更改另一个机器上的 RealVNC 密码的 C# 应用程序。
目前有效的是,我可以从已更改的盒子中提取密码,将其存储为十六进制字符串,然后将其发送到另一个盒子,然后以这种方式更改密码,但我需要能够更改密码或者动态随机化它。
我在创建正确的二进制文件以放入注册表时遇到问题。
我知道 VNC 密钥:
byte[] Key = { 23, 82, 107, 6, 35, 78, 88, 7 };
因此,使用上面的密钥并传递“1234”作为密码,使用以下代码进行加密:
public static byte[] EncryptTextToMemory(string Data, byte[] Key)
{
try
{
MemoryStream mStream = new MemoryStream()
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
desProvider.Mode = CipherMode.ECB;
desProvider.Key = Key;
CryptoStream cStream = new CryptoStream(mStream,
desProvider.CreateEncryptor(),
CryptoStreamMode.Write);
byte[] toEncrypt = new ASCIIEncoding().GetBytes(Data);
cStream.Write(toEncrypt, 0, toEncrypt.Length);
cStream.FlushFinalBlock();
byte[] ret = mStream.ToArray();
cStream.Close();
mStream.Close();
return ret;
}
catch (CryptographicException ex)
{
MessageBox.Show("A Cryptographic error occurred: " + ex.Message);
return null;
}
将返回的字节数组传递给 BitConverter.ToString
后,我希望得到与存储在密码注册表中的十六进制值相同,该密码已通过 RealVNC 本身设置为 1234,但我没有。
I'm trying to write C# application that can remotely change the RealVNC password on another box.
What works currently is that I can pull a password from a box that has already been changed, store it as a hex string, and then send it to another box AND then change the password that way but I need to be able to change the password or randomize it on the fly.
I'm having problems with creating the correct binary to place in the registry.
I know the VNC key:
byte[] Key = { 23, 82, 107, 6, 35, 78, 88, 7 };
So using the above key and passing "1234" as the password to encrypt using the following code:
public static byte[] EncryptTextToMemory(string Data, byte[] Key)
{
try
{
MemoryStream mStream = new MemoryStream()
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
desProvider.Mode = CipherMode.ECB;
desProvider.Key = Key;
CryptoStream cStream = new CryptoStream(mStream,
desProvider.CreateEncryptor(),
CryptoStreamMode.Write);
byte[] toEncrypt = new ASCIIEncoding().GetBytes(Data);
cStream.Write(toEncrypt, 0, toEncrypt.Length);
cStream.FlushFinalBlock();
byte[] ret = mStream.ToArray();
cStream.Close();
mStream.Close();
return ret;
}
catch (CryptographicException ex)
{
MessageBox.Show("A Cryptographic error occurred: " + ex.Message);
return null;
}
After passing the returned byte array to BitConverter.ToString
, I would expect to get the same hex values as stored in the registry of a password already set to 1234 with RealVNC itself, but I'm not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下是我加密/解密 VNC 密码的来源:
并解密:
还需要此功能:
在顶部添加:
不记得我从哪里获得代码。我不是原作者。
Here are my sources to encrypt/decrypt VNC password:
And to decrypt:
Also this function is needed:
At top add:
Can't remember where I got the code from. I am not the original author.