客户端加密处理

随着网络的发展,加密对于客户端来说越来越重要,很多金融公司招聘要求明确提出精通客户端的加密处理。今天就个人所接触的客户端加密处理做下记录分享。

1、首先最外层,对每次网络接口的调取都会拼接一个时间戳serverTime,这个时间戳从服务器获取,服务器判断时间戳的有效期。超过有效期则判断此次请求无效,抛弃这次请求。可根据实际情况,自行设置过期时间

2、创建出客户端token,ClientToken生成 代码如下

//获取服务器时间戳的天

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];

NSDate*confromDate = [NSDate dateWithTimeIntervalSince1970:[UserManager sharedUserManager].serverTime];

[formatter setDateFormat:@"d"];

int day=[[formatter stringFromDate:confromDate] intValue];

int s1=[self getRandomNumber:1000to:9999];

NSString*s2temp= [NSString stringWithFormat:@"%@%ld",k_SymmetricKey,(long)day];//改为服务器时间

NSString*s2= [[s2temp md5] substringToIndex:10];

NSString*s3= [self conversionSixteen: ([UserManager sharedUserManager].serverTime+s1)];

NSString*clientToken=[NSString stringWithFormat:@"%ld%@%@",(long)s1,s2,s3];

return clientToken;

3、添加加密sign签名 paramater[@"sign"]=[self securtyParameter:paramater];

把参数字典paramater转化为字符串。然后进行MD5编码。编码后再拼接上一个私钥,然后再进行一次MD5.生成一个新的字符串作为sign签名

4、最后将以上包含所有参数的字典通过转成json格式的字符串,同时进行两次base64加密,生成最终的需上传服务器的字符串encryptedStr。

加密方式有多种多样,各种排列组合可根据个人公司的实际需要设定。但基本思路不变,事先和服务器约定好的规则进行即可。实际上我们做不到密码的绝对安全,但是破解密码的代价大于被破解事物的价值,我们做到这点,就可以有效的防范黑客的攻击,保障我们客户端的安全。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文中所有代码演示均有GitHub源码,点击下载 普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明...
    si1ence阅读 40,819评论 20赞 197
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,175评论 19赞 139
  • 首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事...
    JonesCxy阅读 1,618评论 2赞 4
  • 转眼已经大二下……
    逸遖阅读 303评论 0赞 0
  • 第一遍看古典老师(得到专栏“超级个体”作者)新书《跃迁——成为高手的技术》,觉得知识量很大,不好吸收,再看第2遍,...
    演讲教练李超满阅读 550评论 0赞 1

友情链接更多精彩内容