JS实现密码加密(base64, md5, sha1)
简介
在编写Web程序时,表单的提交若密码使用明文提交会十分不安全,因此在浏览器端也要对密码进行加密处理。但是若只是在浏览器端处理了,而服务器没有再一次加密,也是不妥当的,因为"中间人"只要获取了浏览器端加密的密码,不需要进行处理也能进行登录。所以我一般的做法是在前端加密一次,在服务器再加密一次。密码加盐(salt)的问题等我先研究下再写一下。而浏览器端加密一般我都用javascript进行加密后再提交。下面是用javascript编写的base64加密,md5加密和sha1加密。使用方法也极其简单,只要在页面内引入相应js文件即可。
…贴图库被网信办关闭 官方:解决需要时间
iOS NSString字符串MD5加密
NSDictionary含有null导致写文件(writeToFile)失败(豆瓣电影Api返回Json数据中含有null)
之前从接口获取数据后转换为NSDictionary然后执行writeToFile就可以写入文件成功,昨天在使用豆瓣电影Api时,出现了前几条请求的数据写入缓存成功,从某一次请求开始就总是写入不成功。因为我是用gcd方式请求数据的,我还以为是因为线程竞争的问题,但是写文件的原子操作我设置的YES啊。然后写进程锁试一下,然而仍然写入失败,后来我不用gcd以为能好,结果还是写入失败。后来翻资料,说好像如果NSDictionary中有自定义的object类型是不能写入文件的,比如像null,呵呵。但是我找了半天也没找到错误所在,然后也不太影响正常使用,就暂时放在一边了。
结果今天出问题了,之前获取的是电影的列表信息,今天要写电影的详情页信息。写好后不断测试,结果有一条电影,一点进入详情就会崩溃。好了,设置好断点,一步步排查,最后NSLog导演头像的urlString时,找到了问题所在,导演的头像图片的url为null!终于找到了问题所在。那么可以解决了…
我获取了该条目电影的id号,然后在浏览器中获取了他的json数据,果不其然,就是这个电影!《火云端》!
然而我并没有想到有这么多null。
经过百度,好像要写文件,NSDictionary里面的object必须是NSString,NSData,NSNumber,NSDate,NSArray,NSDictionary中的数据类型。不过我知道,含有null是万万不能的,混蛋。
解决方案:NSDictionary -> NSDate
NSDictionary写文件之前,可以把它转换成NSData类型的数据,再执行写文件操作。 从文件读取时把读取出的NSData转换为NSDictionary就可以了。
用到的方法
NSDictionary -> NSData:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dictionary];
NSData -> NSDictionary:
NSDictionary *dictionary = (NSDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
昨天的问题解决了,这样写时候,每一次都能写入缓存文件成功。
今天的涉及到NSDictionary值的获取的部分,我都加了一个判断 if([theValue isKindOfClass:[NSNull class]])
,然后进行相应处理就可以了。
这个时iOS的一个归档方法,不仅仅能归档null
,自定义的类型
也是可以的。具体可以参见小白猪jianjian的博客-使用NSKeyedArchiver归档
纯代码高仿网易新闻客户端两个scrollView联动(二):实现界面逻辑变换
上一篇已经实现了页面的布局,这一篇我们来实现界面的逻辑变换。主要用到的是scollView的两个代理方法。我们先看一下效果。
…纯代码高仿网易新闻客户端两个scrollView联动(一):设置基本的界面布局
自己再开发app过程中遇到了这样那样的需求,其中有一项是新闻页面,需要两个scrollView联动,上面的scrollView是新闻类型,下面scrollView是tableView新闻标题。开发过程中我全部都是用代码布局的,因为自己是新手,不知道到底是用代码写比较方便还是用storyBoard更方便,但是感觉手写代码适应屏幕上更容易上手吧。需求实现之后现在拿出来简单整理一下,方便自己日后查看,也给后来者以参考。因为刚刚开始学,用到的都是些简单的方法,也可能会出错,如果有什么不足,请留言给我指出。谢谢~
…