加密方法在一台PC上失败,但在另一台PC上有效

时间:2018-06-25 18:04:51

标签: c# encryption

我遇到一个问题,其中包含用户名和密码的文件可以在某些计算机上解密,但在另一台计算机上失败。

发生故障的机器是Windows 7嵌入式的全新安装。所有已安装的就是我的应用程序和.net Service Pack 4.6.2

我最初不是编写此代码的,但是我需要使它在Win 7嵌入式计算机上运行。

我看到的错误是:

UserManager错误:读取C:\ CutterBuild \ Data \ Config \ users.xml时出错:System.Security.Cryptography.CryptographicException:密钥在指定状态下无效。

相关代码为:

try
        {
            xmlDoc.PreserveWhitespace = true;
            xmlDoc.Load(inputFilePath);

            System.Security.Cryptography.CspParameters cspParams = new System.Security.Cryptography.CspParameters();
            cspParams.KeyContainerName = KEY_CONTAINER_NAME;

// Next line is Where the code fails and throws exception!!!!.
            System.Security.Cryptography.RSACryptoServiceProvider rsaKey = new System.Security.Cryptography.RSACryptoServiceProvider(cspParams);
            EncryptionHelper.Decrypt(xmlDoc, rsaKey, KEY_NAME);

            reader = new XmlNodeReader(xmlDoc);
            collection = Read(reader, out errorMessage);
        }

我进行了一些调试,直到rsa关键点一切都看起来不错。有关该错误的Microsoft文档没有帮助。

我对此进行了一些阅读,发现它令人困惑,它在文档中指出您需要创建安全证书,但是我找不到有关如何执行此操作的任何说明。并且不应该在一台计算机上创建并复制到其他计算机吗?它被复制到哪里?我在PC上找不到任何有关它的信息,但是解密在PC上运行正常。

有人能指出我正确的方向吗?

0 个答案:

没有答案