对输入进行MD5加密
使用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加密相关推荐
- JavaScript应用:前端MD5加密
前端MD5加密 在前端页面,我们经常会使用表单来提交我们的数据,而表单的两种提交方式get和post都具有一定的安全隐患.get请求的的参数直接在请求行显示,安全隐患较大:post请求方式虽然相对 ...
- python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...
#-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...
- 从零开始实现基于go-zero框架的微服务电商项目(三)——gorm、redis、腾讯云SMS、validate、md5加密、日志输入到kafka的添加
从零开始实现基于go-zero框架的微服务电商项目(三)--gorm.redis.腾讯云SMS.validate.md5加密.日志输入到kafka的添加 项目地址:liuxianloveqiqi/Xi ...
- 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...
在我们后台登陆的时候,有 用户名,密码和验证码3个必选项,所以我们托3个验证控件过来 例如这里,如果没有填写用户名,当点提交的时候,显示 红色的 * 号,并且弹出一个 alert 效果如下 ...
- 在Ubuntu 14.04 64bit上进行md5加密编程
计算指定字符串的md5值是一项很常见的操作,包括使用命令行md5sum,或者在C/C++编程中调用openssl提供的接口函数来进行.下面我们分别阐述如下: 一.在命令行中使用md5校验 计算某个文件 ...
- js MD5加密处理
关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件. 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, ...
- md5加密用户登陆遇到的问题及解决办法
有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密 ...
- 修改MD5加密 提高网站安全
发表文章 修改MD5加密 提高网站安全 2006-08-28 16:23:55 大 中 小 特别说明:此种改变只能用于在刚开始建站时才可,如果你中途改变的话就会出现问题. 也许提到MD5时大家都很熟, ...
- 利用Java自带的MD5加密java.security.MessageDigest;
MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...
最新文章
- 干货:排名前 16 的 Java 工具类!
- jsecharts如何改变占比_echarts.js多图表数据展示使用小结_蓝戒的博客
- thinkphp整合系列之phpqrcode生成二维码
- 去年亏11亿的寒武纪拟科创板募资28亿:三年总营收5.68亿,99%客户来自国内,曾从华为海思挖来CTO...
- 全球与中国终端天线市场发展战略与运营规划分析报告
- boost::make_shared_noinit相关的测试程序
- mysql基于.frm和.ibd进行mysql数据恢复
- 高教杯历年真题_喜报 | 2019“高教社”杯全国大学生数学建模竞赛获奖名单!...
- UVALive 3211 Now or Later (2-SAT)
- Beosin成都链安安全舆情系统上线 公众号更新全新体验!
- 计算机科学导论第五版第二章答案,计算机科学导论第2章-答案
- MySQL读写分离原理
- [nltk_data] Error loading words: <urlopen error [Errno 11004]
- 帆船运行员训练方法研究
- Rocky Linux一个可用于生成环境的Linux
- java计算机毕业设计Web商铺租赁管理系统MyBatis+系统+LW文档+源码+调试部署
- windows下python如何安装模块或包? How to install package or module in windows OS when using PYTHON?
- Spinner ArrayAdapter
- 2020delphi还有人用吗?delphi过时了吗?为什么还有那么多程序员坚持继续选择DELPHI作为软件开发工具
- ModuleNotFoundError: No module named ‘_bz2‘