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. WebSocket & websockets

    WebSocket & websockets https://en.wikipedia.org/wiki/WebSocket https://developer.mozilla.org/en- ...

  2. NBOJv2——Problem 1037: Wormhole(map邻接表+优先队列SPFA)

    Problem 1037: Wormhole Time Limits:  5000 MS   Memory Limits:  200000 KB 64-bit interger IO format: ...

  3. [luoguP1963] [NOI2009]变换序列(二分图最大匹配)

    传送门 根据公式xjb推一下,然后就可以连边. 考虑到字典序最小,和匈牙利算法的实现过程,要倒序匹配. #include <cmath> #include <cstdio> # ...

  4. java面试题之数据基本类型各占几个字节

    类型 位数 字节数 short 2*8 2 char 2*8 2 int 4*8 4 float 4*8 4 long 8*8 8 double 8*8 8

  5. Java NIO系列教程(三-十二) Buffer

    原文链接     作者:Jakob Jenkov     译者:airu     校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...

  6. javaweb学习总结(十一)——使用Cookie进行会话管理(转)

    一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...

  7. Blog 081018

    对于 linux 系统 api, 尝试理解函数参数和函数之间的内在联系,为什么要用这些参数而不是另一些参数,了解 api 之间的一些共性. 一个扩展性良好的程序,结构都有一些共性,就像是一个国家,有好 ...

  8. 在Ubuntu / Ubuntu Kylin下安装和卸载 Nodepadqq

    在Ubuntu / Ubuntu Kylin下安装和卸载 Nodepadqq         对于Ubuntu发行版本可以通过PPA安装,命令如下: sudo add-apt-repository p ...

  9. ajax 分页(jquery分页插件pagination) 小例3

    <#macro ajaxPaginte url > <script type="text/javascript"> var PageSize = 10;// ...

  10. kafka优化–JVM参数配置优化

    https://blog.csdn.net/u013063153/article/details/73826403