详情请看《Dotnet core结合jquery的前后端加密解密密码密文传输的实现》,正常来讲,这个博客里面的代码是没有问题的,但是我有时候却会直接报错,原因是后台解密失败:Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException
我一开始想,是不是因为前端jquery传过来的秘钥里面有了空格,于是加了trim,但有时候还是不行,继续分析。我发现,解密失败只会出现在我用VS生成了项目之后(默认页面是登录页面),没有立即登录,然后我又重新生成了项目,此时开了调试模式,然后我再之前的页面进行登录就会报错。我后来一想是不是跟秘钥有关?看了下代码,一分析还真是:

public class ProcessViewResultAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
{
//rsa public key
var controller = (context.Controller as Controller);
controller.ViewBag.PublicExponent = RSAUtil.PublicPars.PublicExponent;
controller.ViewBag.PublicModulus = RSAUtil.PublicPars.PublicModulus; base.OnResultExecuting(context);
}
}

ActionFilterAttribute里面所有的过滤器方法都是在前端razor页面出现之前执行完成的,因此,在OnResultExecuting中给ViewBag传入公钥是可行的,前端可以获取到公钥进而加密,但是!每次你进入登录注册页面,生成的公钥都是不一样的,只有在你某次进入的登录注册页进行登录注册,才能解密成功,要不然会因为每次的公钥不一样,私钥也就不一样,因此就会解密失败。所以,这点是要注意的。

最新文章

  1. Python 学习拾遗
  2. git 代码更新
  3. sql 相关子查询
  4. cacti yum快速部署
  5. python 面向对象 class 老男孩选课系统
  6. 安卓高手之路之java层Binder
  7. 左侧高亮(js)
  8. BI系统的应用组织思路与数据分析模式
  9. CodeForces 69D Dot (游戏+记忆)
  10. 在Android中自动实现横竖屏切换的问题
  11. 微信小程序跳转页面
  12. 1432: [ZJOI2009]Function
  13. 使用缓存Memcache存储access_token
  14. poj 3294
  15. APPLE-SA-2019-3-25-4 Safari 12.1
  16. 使用Java API操作HDFS文件系统
  17. 牛客网PAT乙级(Basic Level)真题-数字分类 (20)
  18. thinkphp中的内置操作数据库与mysql中的函数汇总
  19. 【sql基础】按照名字分组查询时间最早的一条记录
  20. 2、jeecg 笔记之 t:dictSelect 或 t:dgCol 自定义字典

热门文章

  1. 【python】gevent协程例子
  2. GoogLeNet 之 Inception v1 v2 v3 v4
  3. ubuntu MySQL的卸载
  4. PDF编辑方法,PDF如何去除数字签名
  5. HashMap&线程
  6. C++ Primer 笔记——基本内置类型
  7. 步步為營-96-MyMVC2
  8. mongodb数据中的复制(副本集)
  9. 微信小程序如何自动弹出提示微信授权?
  10. .NetCore 下开发独立的(RPL)含有界面的组件包 (四)授权过滤