Android注册程序编写(二)主函数部分

版权声明:[email protected] https://blog.csdn.net/Baron_wu/article/details/83475952

Android注册程序编写(二)

(作者:Baron_wu 禁止转载)
大家关注一下,顺便点个赞呗

首先安装插件:butterknife

打开file下的setting并选择plugins(在browse):
在这里插入图片描述

在browserepository中搜索butterknife并安装。

在这里插入图片描述
在这里插入图片描述
在build.gradle里添加相应的依赖:

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

在这里插入图片描述

之后开始编写主函数,右击activity…并选择Generate:
在这里插入图片描述
之后选择这一项
在这里插入图片描述
选择绑定的布局:
在这里插入图片描述
之后在主函数中添加按钮响应事件:
在这里插入图片描述
再导入所需要的其他方法:
在这里插入图片描述
在这里插入图片描述
之后在如下图目录中的string文件中加入所用到的flag:
在这里插入图片描述
之后即可编译运行。

所用到的代码:

private boolean checkRegisterCode(String userName, String rs)
{
	try{
	if(userName==null||userName.length()==0||rs==null||rs.length()!=16)
		return false;
	MessageDigest digest=MessageDigest.getInstance("MD5");       //创建报文摘要实例,实现指定的摘要算法
	digest.reset();                                                                                //重置摘要
	digest.update(userName.getBytes());                                           //将String类型的字符串转化为byte类型并存入一个byte数组中
	byte[] bytes=digest.digest();                                                         //对用户名进行哈希
	String hexstr = toHexString(bytes,"");                                           //将散列值转换成十六进制的字符串
	StringBuilder sb=new StringBuilder();                                          //取字符串前半部分所有奇数位与后半部分所有偶数位重新组合生成注册码
	for(int i=0;i<hexstr.length()/2;i+=2)
	{
		sb.append(hexstr.charAt(i));
	}
	for(int i=(hexstr.length()/2+1);i<hexstr.length();i+=2)
	{
		sb.append(hexstr.charAt(i));
	}
	String userRegisterCode=sb.toString();
	if(!userRegisterCode.equalsIgnoreCase(rs))
		return false;
		}catch(NoSuchAlgorithmException e){
			e.printStackTrace();
			return false;			
		}
	return true;
}

~~ ~~

private String toHexString(byte[] bytes, String string) {
		
		StringBuilder hexString=new StringBuilder();
		
		//对字符数组遍历
		for(byte b:bytes)
		{
		/*将字节转换为16进制的字符串,不可直接对字节进行转换,字节8位,
int 32位,采用补码,直接转换出错*/
			String hex=Integer.toHexString(0xFF&b);
			
			if(hex.length()==1)
			{
				hexString.append('0');
			}
			
			hexString.append(hex).append(string);
		}
		return hexString.toString();
	}

~~ ~~

//为注册按钮设置点击事件
btnRegister.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
	if(!checkRegisterCode(etUserName.getText().toString().trim(), etRegiserCode.getText().toString().trim()))
	{
Toast.makeText(MainActivity.this, R.string.fail, Toast.LENGTH_SHORT).show();
	}
	else{
Toast.makeText(MainActivity.this, R.string.succeed, Toast.LENGTH_SHORT).show();
	btnRegister.setEnabled(false);
	setTitle(R.string.registered);
	}
	}
});
}

~~ ~~

<resources>
    <string name="app_name">AppCracking</string>
    <string name="fail">注册失败</string>
    <string name="succeed">注册成功</string>
    <string name="registered">已注册</string>

</resources>

猜你喜欢

转载自blog.csdn.net/Baron_wu/article/details/83475952