使用MD5算法计算用户名字符串的散列值,将计算结果转换成长度32位的十六进制字符串。
然后将字符串中的所有奇数位重新组合,生成新的字符串。这个字符串就是注册码


点击事件:

  btn_one.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(!checkSN(et_name.getText().toString().trim(), et_password.getText().toString().trim())){Toast.makeText(MainActivity.this,"unsuccess",Toast.LENGTH_SHORT).show();}else{Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();btn_one.setEnabled(false);setTitle("registered");}}});

将输入信息和注册码作为参数传入进行验证,如果输入信息的注册码不对则返回false:

    //使用MD5算法计算用户名字符串的散列值,将计算结果转换成长度32位的十六进制字符串。//然后将字符串中的所有奇数位重新组合,生成新的字符串。这个字符串就是注册码private boolean checkSN(String name,String password) {try {if((name==null)||(name.length()==0)){return false;}if((password==null)||(password.length()!=16)){return false;}MessageDigest digest=MessageDigest.getInstance("MD5"); //采用MD5算法digest.reset();//通过reset初始化digest.update(name.getBytes());//加密byte[] bytes=digest.digest();//获取摘要文件String hexstr=toHexString(bytes,"");//奇数位重新组合StringBuilder sb=new StringBuilder();for(int i=0;i<hexstr.length();i+=2){sb.append(hexstr.charAt(i));}String userSN=sb.toString();Log.e("TAG", hexstr);Log.e("TAG", userSN);if(!userSN.equalsIgnoreCase(password))return false;} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return true;}

第二个参数是对MD5加密生成的注册码加盐

    private static String toHexString(byte[] bytes, String separator) { //转为十六进制StringBuilder hexString = new StringBuilder();for (byte b : bytes) {String hex = Integer.toHexString(0xFF & b);if(hex.length() == 1){hexString.append('0');}hexString.append(hex).append(separator);}return hexString.toString();}

    private String md5(String string) {byte[] hash;try {hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));}catch (NoSuchAlgorithmException e) {throw new RuntimeException("Huh, MD5 should be supported?", e);}catch (UnsupportedEncodingException e) {throw new RuntimeException("Huh, UTF-8 should be supported?", e);}StringBuilder hex = new StringBuilder(hash.length * 2);for (byte b: hash) {if ((b & 0xFF) < 0x10) {hex.append("0");}hex.append(Integer.toHexString(b & 0xFF));}return hex.toString();}

对输入进行MD5加密相关推荐

  1. JavaScript应用:前端MD5加密

    前端MD5加密   在前端页面,我们经常会使用表单来提交我们的数据,而表单的两种提交方式get和post都具有一定的安全隐患.get请求的的参数直接在请求行显示,安全隐患较大:post请求方式虽然相对 ...

  2. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  3. 从零开始实现基于go-zero框架的微服务电商项目(三)——gorm、redis、腾讯云SMS、validate、md5加密、日志输入到kafka的添加

    从零开始实现基于go-zero框架的微服务电商项目(三)--gorm.redis.腾讯云SMS.validate.md5加密.日志输入到kafka的添加 项目地址:liuxianloveqiqi/Xi ...

  4. 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...

    在我们后台登陆的时候,有 用户名,密码和验证码3个必选项,所以我们托3个验证控件过来 例如这里,如果没有填写用户名,当点提交的时候,显示 红色的  * 号,并且弹出一个 alert 效果如下     ...

  5. 在Ubuntu 14.04 64bit上进行md5加密编程

    计算指定字符串的md5值是一项很常见的操作,包括使用命令行md5sum,或者在C/C++编程中调用openssl提供的接口函数来进行.下面我们分别阐述如下: 一.在命令行中使用md5校验 计算某个文件 ...

  6. js MD5加密处理

    关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件. 在本案例中 可以看到MD5共有6种加密方法: 1,  hex_md5(value) 2, ...

  7. md5加密用户登陆遇到的问题及解决办法

    有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密 ...

  8. 修改MD5加密 提高网站安全

    发表文章 修改MD5加密 提高网站安全 2006-08-28 16:23:55 大 中 小 特别说明:此种改变只能用于在刚开始建站时才可,如果你中途改变的话就会出现问题. 也许提到MD5时大家都很熟, ...

  9. 利用Java自带的MD5加密java.security.MessageDigest;

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

最新文章

  1. 干货:排名前 16 的 Java 工具类!
  2. jsecharts如何改变占比_echarts.js多图表数据展示使用小结_蓝戒的博客
  3. thinkphp整合系列之phpqrcode生成二维码
  4. 去年亏11亿的寒武纪拟科创板募资28亿:三年总营收5.68亿,99%客户来自国内,曾从华为海思挖来CTO...
  5. 全球与中国终端天线市场发展战略与运营规划分析报告
  6. boost::make_shared_noinit相关的测试程序
  7. mysql基于.frm和.ibd进行mysql数据恢复
  8. 高教杯历年真题_喜报 | 2019“高教社”杯全国大学生数学建模竞赛获奖名单!...
  9. UVALive 3211 Now or Later (2-SAT)
  10. Beosin成都链安安全舆情系统上线 公众号更新全新体验!
  11. 计算机科学导论第五版第二章答案,计算机科学导论第2章-答案
  12. MySQL读写分离原理
  13. [nltk_data] Error loading words: <urlopen error [Errno 11004]
  14. 帆船运行员训练方法研究
  15. Rocky Linux一个可用于生成环境的Linux
  16. java计算机毕业设计Web商铺租赁管理系统MyBatis+系统+LW文档+源码+调试部署
  17. windows下python如何安装模块或包? How to install package or module in windows OS when using PYTHON?
  18. Spinner ArrayAdapter
  19. 2020delphi还有人用吗?delphi过时了吗?为什么还有那么多程序员坚持继续选择DELPHI作为软件开发工具
  20. ModuleNotFoundError: No module named ‘_bz2‘

热门文章

  1. 杰理之ANC喇叭腔体设计【篇】
  2. 汽车散热器不同造型的注塑件管口密封方案
  3. PQ(product quantization) 算法
  4. PHP(时间)计算本月本周下月下周
  5. 数据库oracle审计,Oracle数据库审计策略
  6. mysql 2005正确安装_超详细的sql2005图解安装全过程
  7. 索尼揮師視頻下載業與蘋果再決高下
  8. 2020年河南高考--各高校在河南录取分数线预测(本科二批——理科):
  9. 横向滚动 且宽度不固定
  10. 硬上的腾讯有意,柔化的京东无情