我正在尝试编写可以远程更改另一个盒子上的 RealVNC 密码的 C# 应用程序。
目前有效的是,我可以从已经更改的框中提取密码,将其存储为十六进制字符串,然后将其发送到另一个框,然后以这种方式更改密码,但我需要能够更改密码或即时随机化。
我在创建正确的二进制文件以放置在注册表中时遇到问题。
我知道 VNC 密钥:
byte[] Key = { 23, 82, 107, 6, 35, 78, 88, 7 };
Run Code Online (Sandbox Code Playgroud)
所以使用上面的密钥并传递“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 …Run Code Online (Sandbox Code Playgroud)