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. scikit-learn使用方法

    1.支持向量机 #_*_ coding:utf-8 _*_ from sklearn import datasets from sklearn import svm #装载内部测试数据集 digits ...

  2. LibreOJ2042 - 「CQOI2016」不同的最小割

    Portal Description 给出一个给出一个\(n(n\leq850)\)个点\(m(m\leq8500)\)条边的无向图.定义\(cut(s,t)\)等于\(s,t\)的最小割的容量,求在 ...

  3. BZOJ3209 花神的数论题 【组合数 + 按位计数】

    题目 背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC -- 当然也包括 CH 啦. 描述 话说花神这天又来讲课了.课后照例有超级难的神题啦-- 我等蒟蒻又遭殃了. 花神的题目 ...

  4. (C++一本通)最少转弯问题 (经典搜索)

    题目描述 给出一张地图,这张地图被分为n×m(n,m<=100)个方块,任何一个方块不是平地就是高山.平地可以通过,高山则不能.现在你处在地图的(x1,y1)这块平地,问:你至少需要拐几个弯才能 ...

  5. javascript之进阶

    一 模态框 1 什么是模态框 模态框(Modal)是覆盖在父窗体上的子窗体.指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应.如单击[确定]或[取消]按钮等将该对话框关闭. 2 ...

  6. SHUoj 字符串进制转换

    字符串进制转换 发布时间: 2017年7月9日 18:17   最后更新: 2017年7月9日 21:17   时间限制: 1000ms   内存限制: 128M 描述 Claire Redfield ...

  7. Bzoj3747 [POI1015] Kinoman

    Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部. 你可以选择l,r(1<=l< ...

  8. 【NOIP2016练习】T1 string (计数)

    题意: 思路: ; ..]of int64; n,k,i:longint; ans,x,y:int64; s,t:ansistring; function c(x,y:longint):int64; ...

  9. Atcoder CODE FESTIVAL 2017 qual B D - 101 to 010 dp

    题目链接 题意 对于一个\(01\)串,如果其中存在子串\(101\),则可以将它变成\(010\). 问最多能进行多少次这样的操作. 思路 官方题解 转化 倒过来考虑. 考虑,最终得到的串中的\(' ...

  10. linux之Deamon进程创建及其进程exit,_exit,return之间的区别

    Dameon进程又被称做守护进程,一般来说他有以下2个特点: 1.生命周期非常长,一旦启动,一般不会终止,直到系统推出,不过dameon进程可以通过stop或者发送信号将其杀死 2.在后台执行,不跟任 ...