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

广州哪里有做公司网站 什么价天津网站建设普斯泰

广州哪里有做公司网站 什么价,天津网站建设普斯泰,搞一个卖东西的网站怎么做,wordpress好用的插件推荐这是一个个人认为非常好用的使用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.yutouwan.com/news/487143/

相关文章:

  • 建设网站基本步骤朝阳改版网站
  • 手机wap网站开发学校网站建设要求
  • 联想公司网站建设现状建设厅网站打不开
  • 网站域名服务器查询镇江专业网站制作公司
  • 徐州网站设计价位淄博企业建网站
  • 东莞建网站公司哪个好企业做网站设置哪些模块
  • 优秀平面设计网站域名服务网站
  • 为什么电子网站开发专业的家居行业网站模板
  • 深圳辰硕网站优化黄页软件app大全
  • 网站 建设 申请报告wordpress linux 建站教程
  • a站进入建设银行网银网站特色
  • 丹东网站建设两个wordpress同步
  • 国内十大网站排名设计北京
  • 网站前台设计教程网赌网站做流量渗透
  • 汕头自助建站软件网站型与商城型有什么区别吗
  • 嘉兴做美食图片的网站班级网站建设模板
  • 织梦网站程序下载试玩app推广网站建设
  • 公司网站栏目自贡跨省特大虚假广告案
  • 雄安企业网站建设php能用着手机网站开发
  • 诏安县城乡建设局网站关于做电影的网站设计
  • 深圳图派做的网站后台加什么百度一对一解答
  • 宣城网站建设电话泉州那家做网站公司好
  • 六盘水做网站网站关键词挖掘
  • 做一个高端网站新版wordpress增加备案
  • 自己做的网站怎么让别人访问网页设计个人总结800
  • 腾讯云wordpress建站教程六感程序网站建设
  • 有没有专门做京东天猫的人才网站成都学网站建设费用
  • 向网站上传文件怎么做沈阳做网站比较好的公司
  • 网站建设与运营考试万网域名管理网站
  • 海口网站运营托管公司wordpress 8个安全密匙