标签:安卓自学 md5加密 自定义对话框 手机安全卫士 布局
功能需求:
技术点:
- 自定义对话框的使用
- MD5加密的实现方式
- SharedPreferences的读写操作
自定义对话框
1.在layout目录下创建一个布局文件,把自定义的对话框布局设置成功
具体代码实现如下
设置密码对话框的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv_dialogsetuppwd_title"
android:text="设置密码"
android:textSize="36sp"
android:textColor="#000"
android:background="#66ff6600"
android:gravity="center_horizontal"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:inputType="textPassword"
android:id="@+id/et_dialogsetuppwd_pwd"
android:textSize="30sp"
android:textColor="#000"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入确认密码"
android:inputType="textPassword"
android:id="@+id/et_dialogsetuppwd_checkpwd"
android:textSize="30sp"
android:textColor="#000"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/btn_dialogsetuppwd_ok"
android:text="确定"
android:layout_marginRight="10dp"
android:layout_marginLeft="20dp"
android:textSize="28sp"
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/btn_dialogsetuppwd_cancel"
android:textSize="28sp"
android:text="取消"
android:layout_marginRight="20dp"
android:layout_marginLeft="10dp"
/>
</LinearLayout>
</LinearLayout>
还有输入密码对话框的布局文件,不再赘述。。
2.加载自定义布局到对话框的操作:
AlertDialog.Builder builder = new AlertDialog.Builder(HomeActivity.this);
View view = View.inflate(HomeActivity.this,R.layout.dialog_input_password,null);
builder.setView(view);
mEtPwd = (EditText) view.findViewById(R.id.et_dialoginputpwd_pwd);
mBtnOk = (Button) view.findViewById(R.id.btn_dialoginputpwd_ok);
mBtnCancel = (Button) view.findViewById(R.id.btn_dialoginputpwd_cancel);
mBtnOk.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
String password = mEtPwd.getText().toString().trim();
if(TextUtils.isEmpty(password))
{
Toast.makeText(HomeActivity.this,"密码不能为空,请重新输入",Toast.LENGTH_SHORT).show();
}
else
{
String checkPassword = sp.getString("password",null);
if(password.equals(checkPassword))
{
//进入主页面
dialog.dismiss();
}
else
{
Toast.makeText(HomeActivity.this,"密码错误,请重新输入",Toast.LENGTH_SHORT).show();
}
}
}
});
mBtnCancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog = builder.show();
}
逻辑:
MD5加密
MD5加密是不可逆的,即加密后的密文无法转换回原来的内容
MD5加密实现的思路:
代码示例:
//把数据进行MD5加密
public String getTextByMD5(String text)
{
StringBuffer buffer = new StringBuffer();
try
{
//1.创建一个信息摘要器
MessageDigest digest = MessageDigest.getInstance("md5");
//2.调用digest方法,把数据进行MD5第一次加密
byte[] bytes = digest.digest(text.getBytes());
//3.遍历数组
for(byte b : bytes)
{
//4.进行与运算
int number = b & 0xff;
//5.把运算结果转换成十六进制字符串
String hex = Integer.toHexString(number);
//6.添加字符串到buffer
if(hex.length() == 1)
{
buffer.append("0");
}
buffer.append(hex);
}
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
return buffer.toString();
}
不知不觉天亮了~~睡意袭来,五个小时之后继续战斗!!
版权声明:刚出锅的原创内容,希望对你有帮助~
手机安全卫士------手机防盗页面之自定义对话框&MD5加密
标签:安卓自学 md5加密 自定义对话框 手机安全卫士 布局
原文地址:http://blog.csdn.net/liangyu2014/article/details/47034041