当前位置: 首页 > news >正文

徐州市丰县建设局网站轻设计 让网站灵敏轻便的6个技巧

徐州市丰县建设局网站,轻设计 让网站灵敏轻便的6个技巧,十大网站app软件下载,企业招聘ppt模板免费这是一个个人认为非常好用的使用MD5salt加密的工具类#xff0c;一部分代码由网上搜索而得#xff0c;一部分自己修改添加之后而得。使用这个工具类#xff0c;非常简单#xff0c;从前台拿到密码passwd#xff0c;直接HexUtil.getEncryptedPwd(passwd)就可以返回一个长度…这是一个个人认为非常好用的使用MD5salt加密的工具类一部分代码由网上搜索而得一部分自己修改添加之后而得。使用这个工具类非常简单从前台拿到密码passwd直接HexUtil.getEncryptedPwd(passwd)就可以返回一个长度为56的字符串可以用来保存到数据库中相反登录的时候因为MD5加密是不可逆的运算只能拿用户输入的密码走一遍MD5salt加密之后跟数据库中的passwd比较看是否一致一致时密码相同登录成功通过调用HexUtil.validPasswd(String passwd,String dbPasswd)方法就可以了不用再做其他事。 好了贴上代码有写一部分注释不好的地方希望留言指出 /** * MD5加密解密及字符串对比工具类 */ public class HexUtil { private final static String HEX_NUMS_STR 0123456789ABCDEF; private final static Integer SALT_LENGTH 12; /** * 将16进制字符串转换成数组 * * return byte[] * author jacob * */ public static byte[] hexStringToByte(String hex) { /* len为什么是hex.length() / 2 ? * 首先hex是一个字符串里面的内容是像16进制那样的char数组 * 用2个16进制数字可以表示1个byte所以要求得这些char[]可以转化成什么样的byte[]首先可以确定的就是长度为这个char[]的一半 */ int len (hex.length() / 2); byte[] result new byte[len]; char[] hexChars hex.toCharArray(); for (int i 0; i len; i) { int pos i * 2; result[i] (byte) (HEX_NUMS_STR.indexOf(hexChars[pos]) 4 | HEX_NUMS_STR .indexOf(hexChars[pos 1])); } return result; } /** * 将数组转换成16进制字符串 * * return String * author jacob * * */ public static String byteToHexString(byte[] salt){ StringBuffer hexString new StringBuffer(); for (int i 0; i salt.length; i) { String hex Integer.toHexString(salt[i] 0xFF); if(hex.length() 1){ hex 0 hex; } hexString.append(hex.toUpperCase()); } return hexString.toString(); } /** * 密码验证 * param passwd 用户输入密码 * param dbPasswd 数据库保存的密码 * return * throws NoSuchAlgorithmException * throws UnsupportedEncodingException */ public static boolean validPasswd(String passwd, String dbPasswd) throws NoSuchAlgorithmException, UnsupportedEncodingException{ byte[] pwIndb hexStringToByte(dbPasswd); //定义salt byte[] salt new byte[SALT_LENGTH]; System.arraycopy(pwIndb, 0, salt, 0, SALT_LENGTH); //创建消息摘要对象 MessageDigest md MessageDigest.getInstance(MD5); //将盐数据传入消息摘要对象 md.update(salt); md.update(passwd.getBytes(UTF-8)); byte[] digest md.digest(); //声明一个对象接收数据库中的口令消息摘要 byte[] digestIndb new byte[pwIndb.length - SALT_LENGTH]; //获得数据库中口令的摘要 System.arraycopy(pwIndb, SALT_LENGTH, digestIndb, 0,digestIndb.length); //比较根据输入口令生成的消息摘要和数据库中的口令摘要是否相同 if(Arrays.equals(digest, digestIndb)){ //口令匹配相同 return true; }else{ return false; } } /** * 获得md5之后的16进制字符 * param passwd 用户输入密码字符 * return String md5加密后密码字符 * throws NoSuchAlgorithmException * throws UnsupportedEncodingException */ public static String getEncryptedPwd(String passwd) throws NoSuchAlgorithmException, UnsupportedEncodingException{ //拿到一个随机数组作为盐 byte[] pwd null; SecureRandom sc new SecureRandom(); byte[] salt new byte[SALT_LENGTH]; sc.nextBytes(salt); //声明摘要对象并生成 MessageDigest md MessageDigest.getInstance(MD5); md.update(salt); md.update(passwd.getBytes(UTF-8)); byte[] digest md.digest(); pwd new byte[salt.length digest.length]; System.arraycopy(salt, 0, pwd, 0, SALT_LENGTH); System.arraycopy(digest, 0, pwd, SALT_LENGTH, digest.length); return byteToHexString(pwd); } }
http://www.zqtcl.cn/news/40659/

相关文章:

  • 南通网站定制公司淘宝网作图做网站
  • 横岗网站建设公司网站建设开发报价表
  • 网站快速备案公司腾讯云 wordpress教程视频
  • 网站建设案例收费情况长沙网站开发微联
  • 平潭县建设局网站网络营销有什么新的变化
  • 一个旅游网站怎么做建材网站建设
  • 2017网站发展趋势wordpress 强大主题
  • 网站源码官网房山做网站
  • 视频网站建设公司排名做网站的技术难点
  • 杏坛网站建设炫酷网站设计
  • 互助县wap网站建设公司济南集团网站建设流程
  • 住房和城乡建设部网站打不开装潢设计就业前景
  • 如何在云服务器上开多几个网站wordpress本地搬家
  • 网站设计用什么字体好湖南长沙电信大楼着火
  • 文明农村建设网站建设官方网站企业官网
  • 网站内容运营域名seo查询
  • 山东省南水北调建设管理局网站优购物官方网站app
  • 手机号码定位网站开发全屋定制设计培训哪里有
  • 企业网站建设尚未实现宣传功能怎么学习做网站
  • 听歌网站源码做中学数学教案有哪些好的网站
  • 自己做网站租服务器物流网页设计
  • 百度经验实用生活指南湖南seo优化报价
  • 计算机专业网站设计论文响应式网站开发报价
  • 网站右下角调用优酷视频广告代码网站群建设 效果
  • 松江区网站建设wordpress简单的验证码
  • 网站开发都需要什么wordpress模板导入
  • 网站备案信息核验单怎么如何做网络推广运营
  • 网站做5年有多少流量网站开发工程师ppt
  • 淘宝网站怎么做特价广告推广软件
  • 影视传媒网站设计建设银行浙江网站