数据安全一直是系统开发过程中非常重要的一环。我们有时经常需要对传输的数字进行加密解密,比如url传参,很多系统都会通过url传递一个RequestID(就是数据表的key值,一般用于去数据库查询表单数据),有些程序员做的系统没有考虑数据访问安全性的问题,直接去数据库根据url传递的参数取值,如果ID是自增长的,我们往往直接可以通过修改url的参数就很容易获取到其它可能正常无权访问的数据。
这个时候,一种简单的处理方式就是对传输的RequestID的值进行加密,在后端根据传递的原始值和加密值按秘钥进行解密比对就能杜绝直接修改requestID获取无权限的数据的情况。
在C++开发过程中,我们也可以通过使用C++实现的异或加解密方法,对特定字符串数据进行数据加解密操作,具体代码如下:
std::string Encrypt(std::string content, std::string secretKey) { for (UINT i = 0; i < content.length(); i++) { content[i] ^= secretKey[i % secretKey.length()]; } return content; } std::string Decrypt(std::string data, std::string secretKey) { for (UINT i = 0; i < data.length(); i++) { data[i] ^= secretKey[i % secretKey.length()]; } return data; }