MD5摘要算法:

<span style="font-size:18px;">主要代码:
String s = edit.getText().toString();
if (TextUtils.isEmpty(s)){
Toast.makeText(getActivity(), "摘要数据不可为空", Toast.LENGTH_SHORT).show();
} else {
try {
//获取一种摘要算法
MessageDigest instance = MessageDigest.getInstance("MD5");
byte[] digest = instance.digest(s.getBytes("UTF-8"));
StringBuilder builder = new StringBuilder();
for (byte b : digest) {
builder.append(String.format("%2x", b & 0xff));
}
String replace = builder.toString().replace(' ', '0').toUpperCase();
text.setText(replace);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}</span>

Base64加解密:

<span style="font-size:18px;">主要代码:
public void onClick(View v) {
switch (v.getId()){
case R.id.base64_encode:
String src_s = src.getText().toString();
if (TextUtils.isEmpty(src_s)){
Toast.makeText(getActivity(), "原码不可为空", Toast.LENGTH_SHORT).show();
} else {
try {
String s = Base64.encodeToString(src_s.getBytes("UTF-8"), Base64.DEFAULT);
rlt.setText(s);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
break;
case R.id.base64_decode:
String rlt_s = rlt.getText().toString();
if (TextUtils.isEmpty(rlt_s)){
Toast.makeText(getActivity(), "编码不可为空", Toast.LENGTH_SHORT).show();
} else {
byte[] decode = Base64.decode(rlt_s, Base64.DEFAULT);
try {
src.setText(new String(decode, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
break;
}
}</span>

DES加解密:

<span style="font-size:18px;">主要代码:
public void onClick(View view) {
String key_str = key.getText().toString();
Log.i("key_str-----",key_str+"----");
if (key_str==null){
Toast.makeText(getActivity(), "密钥不可为空", Toast.LENGTH_SHORT).show();
} else {
try {
byte[] bytes = key_str.getBytes("UTF-8");
byte[] keys = new byte[32];
System.arraycopy(bytes, 0, keys, 0, Math.min(bytes.length, keys.length));
//加解密时, 用到的key对象, 第一个參数的byte数组的长度必须符合第二个參数算法的要求。 SecretKey secretKey = new SecretKeySpec(keys, "Aes");
//加解密时,用到的工具对象,工具的算法和key的算法必须一样
Cipher cipher = Cipher.getInstance("Aes");
switch (view.getId()){
case R.id.des_encode:
String src_str = src.getText().toString();
if (src_str==null){
Toast.makeText(getActivity(), "加密时,原文不可为空", Toast.LENGTH_SHORT).show();
} else {
//初始化为加密模式
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] aFinal = cipher.doFinal(src_str.getBytes("UTF-8"));
rlt.setText(Base64.encodeToString(aFinal, Base64.DEFAULT));
}
break; case R.id.des_decode:
String rlt_str = rlt.getText().toString();
if (rlt_str==null){
Toast.makeText(getActivity(), "解密时。密文不可为空", Toast.LENGTH_SHORT).show();
} else {
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] aFinal = cipher.doFinal(Base64.decode(rlt_str, Base64.DEFAULT));
src.setText(new String(aFinal, "UTF-8"));
}
break;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
}
}
}
</span>

源代码地址:

http://download.csdn.net/detail/lzq520210/9419823

android中的MD5、Base64、DES/3DES/ADES加解密的更多相关文章

  1. .net core中使用openssl的公钥私钥进行加解密

    这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoS ...

  2. iOS中的MD5(base64)加密

    MD5(base64)是一种结合MD5摘要和base64编码的密文处理方式,加密后的结果为24位字符串,且后两位为==,例如:1的加密结果为xMpCOKC5I4INzFCab3WEmw==. 下面是加 ...

  3. DES,AeS加解密,MD5,SHA加密

    1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...

  4. Android 中的 WebView实现 Html5 标签网页加载

    自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并 ...

  5. Android中textView自动识别电话号码,电子邮件,网址(自动加连接)

    extends:http://blog.csdn.net/wx_962464/article/details/8471195 其实这个是很简单的,在android中已经为我们实现了,但是我估计很多人都 ...

  6. Android中监听webview监听是否加载完成

    之前写过一篇捕获Phoengap的webview事件的方法,主要是在实现了CordovaInterface的Activity中,  在onMessage中根据第一个参数的message name来判断 ...

  7. 使用JDK中的安全包对数据进行加解密

    本文以使用DES对称加密算法为例使用jdk对数据进行加密解密. 首先需要了解Provider类,它是jdk引入的密码服务提供者概念,实现了Java安全性的一部分或者全部.Provider 可能实现的服 ...

  8. iOS开发:用DES对字符串加解密

    参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同 ...

  9. python 实现 DES CBC模式加解密

    # -*- coding=utf-8-*- from Crypto.Cipher import DES import base64 """ des cbc加密算法 pad ...

随机推荐

  1. 集合篇 —— Collection(1):JDK 中的重复实现问题

    1.      问题的提出 在 Java 的集合体系当中,无论是 List(列表)还是 Set(集),在设计的时候都存在一个很奇怪的现象:这两种集合的接口,Java 都为其设计了抽象类 Abstrac ...

  2. Python Excel导入数据库

    import xlrd import MySQLdb def inMySQL(file_name): wb = xlrd.open_workbook(file_name) sh = wb.sheet_ ...

  3. iOS-----openGL--openGL ES iOS 入门篇--->搭建openGL环境

    OpenGL版本 iOS系统默认支持OpenGl ES1.0.ES2.0以及ES3.0 3个版本,三者之间并不是简单的版本升级,设计理念甚至完全不同,在开发OpenGL项目前,需要根据业务需求选择合适 ...

  4. (转)Java字符串整形(例:0001)

    原文地址:https://blog.csdn.net/xuexiiphone/article/details/51372692 caseID = preFix + String.format(&quo ...

  5. 学习 JSP:第一步Eclipse+Tomcat+jre(配置环境)

    [下载软件](例子version:版本号) Eclipse从官网下载(version:4.7)http://www.eclipse.org/downloads/ jre从官网下载(version:1. ...

  6. greenplum /postgres 登陆以及创建修改用户密码

    1.greenplum 启动 bin目录下的gpstart  ,-m为只启动master 2.greenplum 启动之后,通过postgresql登陆 登陆命令:PGOPTIONS="-c ...

  7. 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解(转载)

    相关参考文章: 谈谈自己对REST.SOA.SOAP.RPC.ICE.ESB.BPM知识汇总及理解 微服务SOA架构与RPC远程过程调用 SOA和微服务架构的区别 SOA: 维基百科解释:SOA:面向 ...

  8. for循环创建对象

    有时候奇怪的发现往list添加数据的时候,一直被最后一个元素覆盖,首先 ,我们得明白原理: 在new 一个对象的时候,对象的ID是唯一确定的:将对象add入list中时,放入list中的其实是对象的引 ...

  9. 大视野 1016: [JSOI2008]最小生成树计数(最小生成树)

    总结:此类题需要耐心观察规律,大胆猜想,然后证明猜想,得到有用的性质,然后解答. 简单的说:找隐含性质. 传送门:http://61.187.179.132/JudgeOnline/problem.p ...

  10. LeetCode OJ--Path Sum *

    https://oj.leetcode.com/problems/path-sum/ 树的深搜,求从根到叶子的路径. 记住深搜的样子 #include <iostream> using n ...