首先,我正在做一个硕士生的项目,该项目是一个网络银行系统,并在该系统上应用加密算法。
第一个算法是请求我帮助的学生设计的一种新的加密算法,它是对数据库中的敏感数据(信用卡信息)进行加密。
第二种算法(改进的 AES 算法)是使用网络聊天室对银行客户和银行系统管理员之间的消息进行加密。
当然,第一种算法没有问题,因为我可以应用它来加密用户提交的信用卡信息并将其保存到数据库中。
但是,问题是,监督这个学生项目的教授坚持要保护管理员和客户通过网络发送的、他们正在使用网络聊天室的消息,并且这些消息必须使用第二种算法来保护(修改后的 AES)。
众所周知,如果我只是用 Javascript 编写第二个算法来加密浏览器客户端计算机上的消息,然后将这些加密的消息发送到服务器,这意味着任何打开此网页的人都可以使用该算法,因为我们都知道 Javascript 是一个开放的客户端源代码。
所以,不再说话,我只是想问:
如何使用网络应用程序(例如网络聊天应用程序)应用任何加密算法来保护客户端计算机和服务器计算机之间的数据传输,而不需要将此算法开源给任何客户端计算机?
最佳答案
ADyson 的评论包含了实际解决此问题的最佳解决方案,但听起来教授添加了限制,阻止您采用实际的解决方案。
不可能在客户端计算机上执行加密算法,同时对运行该算法的人员和计算机保密。他们始终可以检查代码。
关于asp.net - C# ASP.NET Core 2 中的安全网络聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51287306/