如何通过.NET加密技术升级数据安全,实现更高级别的信息保护?

2026-03-30 10:481阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计927个文字,预计阅读时间需要4分钟。

如何通过.NET加密技术升级数据安全,实现更高级别的信息保护?

最近又遭遇了【现场破解共享单车系统】的尴尬,开始后不禁感到恐惧:如何防止类似情况发生?想象一下,开始时觉得将程序加密是最简单的做法。但遗憾的是,摩拜、ofo也有加密,却依然被破解。“

最近又被刷了一脸,不得不开始后怕:如何防止类似的情况发生?

想来想去,始终觉得将程序加密是最简单的做法。但是摩拜、ofo也有加密,为什么仍然被破解?那是因为请求在传输过程中被篡改了关键参数,从而导致服务器做出了错误的响应。

如何防止篡改?自然是使用加密,加密方式的不同会决定篡改的成本(开头故事里的哥们大概用了2天),目前大多数的加密方法是暴露其他参数,只加密一个token,然后服务端验证token是否有效。从我的角度来讲,这种加密方式虽然破解难度很高,但多半是用MD5、SHA1、hmacMd5或AES等方式进行加密,结果往往是不可逆的,并且固定内容加密——不管多少次结果总是相同的。

对于部分人来讲,只要你暴露出来的数据就可以做很多事情了,而且如果使用这种加密手段,那么服务端和客户端必须约定好加密手段和参与加密的字段(规则),这就相当于:我(服务端)和你(客户端)一起设计了钥匙,然后在需要的时候(发起请求)你就往指定地方(服务器)丢一个上了锁的箱子(加密后的数据),然后我制作钥匙打开锁。我也可以丢箱子,然后你用同样方式去打开。

大家可以打开的锁安全么?想想都不靠谱。

如何通过.NET加密技术升级数据安全,实现更高级别的信息保护?

更好的是什么?我们设想一下:我(服务端)给你(客户端)制造锁的图纸,我有制造钥匙的图纸,在你需要的时候(发起请求)就做一把锁,然后把货物(原始数据)放在箱子里锁好(加密完成)丢在指定的地方(服务器),然后我制作出钥匙,开锁拿走货物(解密)。

现在感觉如何?就像情报机构,侦察员只负责按照规则传递密码,而总部按照另一套规则解读,这个过程中就算被监听到,第三方也无法解读——这种方式就是今天要说的RSA。

该怎么做呢?很简单:基于现在基本都是用pan.baidu.com/s/1b9Wy42,可以直接使用。

js的RSA加密也要用到一个库,在这里捎带贴一下:

<script type="text/javascript" src="/uploads/allimg/230118/050KQ914-1.jpg"></script> <script> //实例化对象 var crypt = new JSEncrypt(); //设置私钥 crypt.setPrivateKey('你的RSA公钥'); $('#log_in').click(function () { //拼装发送数据 var post_data = crypt.encrypt('{"msg":{"method":"log_in","time":"' + Tool.getNowTime() + '","user_name":"' + $('.name').val() + '","user_pwd":"' + $('.pwd').val() + '"}}'); //在这里发起你的请求 }); </script>

因为js可以被看到,所以你更需要RSA,因为全部被看到也无所谓了。

到此这篇关于.Net使用加密升级数据安全的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联

本文共计927个文字,预计阅读时间需要4分钟。

如何通过.NET加密技术升级数据安全,实现更高级别的信息保护?

最近又遭遇了【现场破解共享单车系统】的尴尬,开始后不禁感到恐惧:如何防止类似情况发生?想象一下,开始时觉得将程序加密是最简单的做法。但遗憾的是,摩拜、ofo也有加密,却依然被破解。“

最近又被刷了一脸,不得不开始后怕:如何防止类似的情况发生?

想来想去,始终觉得将程序加密是最简单的做法。但是摩拜、ofo也有加密,为什么仍然被破解?那是因为请求在传输过程中被篡改了关键参数,从而导致服务器做出了错误的响应。

如何防止篡改?自然是使用加密,加密方式的不同会决定篡改的成本(开头故事里的哥们大概用了2天),目前大多数的加密方法是暴露其他参数,只加密一个token,然后服务端验证token是否有效。从我的角度来讲,这种加密方式虽然破解难度很高,但多半是用MD5、SHA1、hmacMd5或AES等方式进行加密,结果往往是不可逆的,并且固定内容加密——不管多少次结果总是相同的。

对于部分人来讲,只要你暴露出来的数据就可以做很多事情了,而且如果使用这种加密手段,那么服务端和客户端必须约定好加密手段和参与加密的字段(规则),这就相当于:我(服务端)和你(客户端)一起设计了钥匙,然后在需要的时候(发起请求)你就往指定地方(服务器)丢一个上了锁的箱子(加密后的数据),然后我制作钥匙打开锁。我也可以丢箱子,然后你用同样方式去打开。

大家可以打开的锁安全么?想想都不靠谱。

如何通过.NET加密技术升级数据安全,实现更高级别的信息保护?

更好的是什么?我们设想一下:我(服务端)给你(客户端)制造锁的图纸,我有制造钥匙的图纸,在你需要的时候(发起请求)就做一把锁,然后把货物(原始数据)放在箱子里锁好(加密完成)丢在指定的地方(服务器),然后我制作出钥匙,开锁拿走货物(解密)。

现在感觉如何?就像情报机构,侦察员只负责按照规则传递密码,而总部按照另一套规则解读,这个过程中就算被监听到,第三方也无法解读——这种方式就是今天要说的RSA。

该怎么做呢?很简单:基于现在基本都是用pan.baidu.com/s/1b9Wy42,可以直接使用。

js的RSA加密也要用到一个库,在这里捎带贴一下:

<script type="text/javascript" src="/uploads/allimg/230118/050KQ914-1.jpg"></script> <script> //实例化对象 var crypt = new JSEncrypt(); //设置私钥 crypt.setPrivateKey('你的RSA公钥'); $('#log_in').click(function () { //拼装发送数据 var post_data = crypt.encrypt('{"msg":{"method":"log_in","time":"' + Tool.getNowTime() + '","user_name":"' + $('.name').val() + '","user_pwd":"' + $('.pwd').val() + '"}}'); //在这里发起你的请求 }); </script>

因为js可以被看到,所以你更需要RSA,因为全部被看到也无所谓了。

到此这篇关于.Net使用加密升级数据安全的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联