发表于: 2016-12-02 23:20:10
1 1924
今天完成的事情:
1)给登录的controller中加入了密码验证通过后new Cookie(),Cookie中放入token名与token值
2)今天有点纠结写的DES加密算法(从网上copy的),这个算法要求传入一个待加密字节数组跟一个8倍位数的字符串,
因为我要加密的是登录时间与用户id,是long值,而long值转字节数组,需要先转成字符串,再转成字节数组,
这还不算,解密的时候,我又要把加密过的DES值转成字节数组,传入解密方法,
UTF-8的java文件中,字节数组这样转来转去,是会丢失或者多出字节的,而写的main方法也验证了确实出了问题,
把java文件保存成iso-8859-1确实可以解决字节丢失或多出的问题,但maven install等命令却又不能顺利运行了。
非常纠结
索性,直接跟密码一样也用MD5加盐加密方式
3)写拦截器将cookie拦截,实现还没全部完成
明天计划的事情:
按禅道走
遇到的问题:
免密码登录、登录后显示用户定制页面、登录可见与登录不可见的实现
这几个还没有思路
收获:
1)当不确定循环执行几次结束,又手握结束条件时,可以用while(条件体){循环体}循环
2)想要去掉字符串中的某个部分,可以用replace方法实现
String b = "abcabcabc";
b=b.replace("b","");
3)通过socket给Java传递byte[]数组时,utf-8的字节数组在转换为String, Java并不会遇到0就停止结束,而是一直使用完byte[]的容量,所以在转换为Java的String需要自己判断字节值是0的位置,再截取数组长度。
这是为什么呢?原因是第一种方法默认是用UTF-8编码来生成String的,用System.getProperty("sun.jnu.encoding")可以得到Android默认编码是UTF-8。UTF-8是可变长度的编码,原来的字节数组就被改变了。而ISO8859-1通常叫做Latin-1,Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,其中 0~127的字符与ASCII码相同,它是单字节的编码方式,这样第二种方式生成的String里的字节数组就跟原来的字节数组一样。在new String使用其他编码如GBK,GB2312的话一样也会导致字节数组发生变化,因此要想获取String里单字节数组,就应该使用iso8859-1编码。
评论