在本地开发环境调试下,调试这个RSA加密是没问题的,但是部署到IIS就会报错。
原来是,在本地vs调试与IIS上运行是存在权限差异的。本地调试权限最大,IIS 次之。
所以在我们声明CspParameters参数时,我们要启动标识使用计算机存储权限UseMachineKeyStore。
默认是不指定任何配置NoFlags。
所以如下:
CspParameters RSAParams = new CspParameters();
RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider sp = new RSACryptoServiceProvider(1024, RSAParams); //1024 指定要使用密钥的大小