`
dyllove98
  • 浏览: 1404324 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39008
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:79976
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133093
社区版块
存档分类
最新评论

android客户端加密代码

阅读更多

package com.devchina.scurity;

import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

public class SecurityEnDe {
	private static final String defalutSeed = "devchina";
	private static final String algorithm = "AES";
	private final static String HEX = "0123456789ABCDEF";

	public static String encrypt(String cleartext) throws Exception {
		return encrypt(defalutSeed, cleartext);
	}

	public static String encrypt(String seed, String cleartext)
			throws Exception {
		byte[] rawKey = getRawKey(seed.getBytes());
		byte[] result = encrypt(rawKey, cleartext.getBytes());
		return toHex(result);
	}

	public static String decrypt(String encrypted) throws Exception {
		return decrypt(defalutSeed, encrypted);
	}

	public static String decrypt(String seed, String encrypted)
			throws Exception {
		byte[] rawKey = getRawKey(seed.getBytes());
		byte[] enc = toByte(encrypted);
		byte[] result = decrypt(rawKey, enc);
		return new String(result);
	}

	private static byte[] getRawKey(byte[] seed) throws Exception {
		KeyGenerator kgen = KeyGenerator.getInstance(algorithm);
		SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
		sr.setSeed(seed);
		kgen.init(128, sr); // 192 and 256 bits may not be available
		SecretKey skey = kgen.generateKey();
		byte[] raw = skey.getEncoded();
		return raw;
	}

	private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
		SecretKeySpec skeySpec = new SecretKeySpec(raw, algorithm);
		Cipher cipher = Cipher.getInstance(algorithm);
		cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
		byte[] encrypted = cipher.doFinal(clear);
		return encrypted;
	}

	private static byte[] decrypt(byte[] raw, byte[] encrypted)
			throws Exception {
		SecretKeySpec skeySpec = new SecretKeySpec(raw, algorithm);
		Cipher cipher = Cipher.getInstance(algorithm);
		cipher.init(Cipher.DECRYPT_MODE, skeySpec);
		byte[] decrypted = cipher.doFinal(encrypted);
		return decrypted;
	}

	public static String toHex(String txt) {
		return toHex(txt.getBytes());
	}

	public static String fromHex(String hex) {
		return new String(toByte(hex));
	}

	public static byte[] toByte(String hexString) {
		int len = hexString.length() / 2;
		byte[] result = new byte[len];
		for (int i = 0; i < len; i++)
			result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2),
					16).byteValue();
		return result;
	}

	public static String toHex(byte[] buf) {
		if (buf == null)
			return "";
		StringBuffer result = new StringBuffer(2 * buf.length);
		for (int i = 0; i < buf.length; i++) {
			appendHex(result, buf[i]);
		}
		return result.toString();
	}

	private static void appendHex(StringBuffer sb, byte b) {
		sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
	}

}
 
1
0
分享到:
评论
1 楼 南蛮虫 2012-07-09  
给点说明行不?

相关推荐

    wordpress Android客户端源代码

    【WordPress Android客户端源代码解析】 WordPress作为全球最受欢迎的开源博客平台,其Android客户端的源代码对于开发者来说具有极高的学习价值。这份源代码不仅能够帮助我们深入理解Android应用的开发流程,还能让...

    android客户端购物代码

    在Android客户端购物代码中,我们主要探讨的是如何利用Android平台开发一个功能完善的移动购物应用。这个项目对于初学者和有经验的开发者来说都是一个宝贵的资源,因为它涵盖了Android应用开发的关键技术,包括用户...

    android客户端与服务器交互的代码,客户端代码

    在Android客户端与服务器交互的过程中,通常涉及到网络编程和数据传输技术。这个压缩包中的"uploadTest"文件可能是实现客户端上传数据到服务器的一个示例。在这个过程中,客户端代码扮演着发送请求、封装数据以及...

    Android RSA加密jar包

    在Android应用中,通常将公钥存储在客户端,用于加密数据;而私钥则保存在服务器端,用于解密数据,确保数据在传输过程中的安全性。 使用这个jar包,开发者可以方便地集成RSA加密到他们的Android应用中。以下是使用...

    057集-Android客户端与服务端交互-服务端代码

    在本节"057集-Android客户端与服务端交互-服务端代码"的视频教程中,我们将深入探讨Android应用程序如何与服务端进行有效且安全的通信,这对于开发任何涉及网络功能的Android应用来说都是至关重要的。这个教程针对的...

    Android登陆客户端与服务器端的源代码

    本资源提供了Android客户端与服务器端进行登录验证的源代码,帮助开发者理解和实现这一关键功能。 首先,我们来看看客户端的部分。在Android客户端,通常会使用HTTP或HTTPS协议与服务器进行通信,这里用到了HTTP库...

    服务端与Android客户端相关代码

    在IT行业中,网络通信是构建分布式系统和移动应用的关键部分,尤其是当涉及到服务端与Android客户端的交互时。本主题主要关注的是如何通过代码实现两者之间的有效通信。下面将详细探讨这一领域的关键知识点。 首先...

    android客户端与后台服务器交互demo

    本示例项目“android客户端与后台服务器交互demo”旨在演示如何在Android应用中与由Structs和Hibernate构建的后台服务器进行有效通信。以下是关于这个项目的一些关键知识点: 1. **Android客户端**:Android客户端...

    基于XMPP实现android客户端与服务器的交互(服务器、客户端源码)

    本文将深入探讨如何使用XMPP(Extensible Messaging and Presence Protocol)协议来构建Android客户端与服务器之间的交互。XMPP是一种开放标准,主要用于即时消息传递和在线状态跟踪,它基于XML流,使得数据传输更为...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    本教程将详细阐述Android客户端如何使用JSON进行数据交互,包括文件上传和文件浏览器功能的实现。 首先,我们需要理解JSON(JavaScript Object Notation)的基本结构。JSON是一种文本格式,易于人阅读和编写,同时...

    简单的Http方式服务器与 android客户端的交互Demo

    2. **Android客户端实现**: - Android客户端通过使用HttpURLConnection或第三方库如OkHttp来发起HTTP请求。对于GET请求,可以在URL中添加查询参数;对于POST请求,需要设置请求方法为POST,并使用setDoOutput(true...

    Android客户端登陆验证+后台

    在Android客户端开发中,登录验证是至关重要的一个环节,它涉及到用户的身份确认、安全保护以及数据的准确性。本文将深入探讨Android客户端登录验证及其与后台交互的实现。 首先,我们来看"Android客户端登录验证...

    CSDN客户端 Android新闻客户端 完整代码

    【标题】"CSDN客户端 Android新闻客户端 完整代码" 涉及的知识点主要集中在Android应用开发领域,特别是构建一个功能完善的新闻阅读应用程序。这个项目可能包含了以下几个关键的技术和概念: 1. **Android SDK**:...

    构建安全的Android客户端请求.zip

    1. **HTTPS通信**:Android客户端应使用HTTPS协议与服务器进行通信,以确保数据在传输过程中被加密,防止中间人攻击。设置HTTPS通常涉及获取SSL证书并配置到服务器,以及在Android代码中使用TrustManager和...

    aaa.zip_android_android客户端

    综上所述,这个压缩包内容可能包括Android客户端的源代码,可能使用了特定的网络库进行JSON通信,有一个名为"McPro1AndroidClient"的可能就是客户端应用的源代码文件夹,还有可能的数据库配置或样例数据文件(如"mc_...

    Android QQ聊天工具客户端源代码

    【Android QQ聊天工具客户端源代码】是一个用于学习和研究的项目,它揭示了Android平台上QQ客户端的实现细节,特别是如何利用Socket进行网络通信,包括TCP和UDP两种协议的应用。源代码分析将帮助开发者深入理解即时...

    xmpp服务器和android客户端源码

    在这个“xmpp服务器和android客户端源码”项目中,我们涉及到了XMPP服务器的搭建与Android客户端应用的开发。接下来,我将详细讲解XMPP协议的核心概念、服务器端的实现以及Android客户端的集成。 1. **XMPP核心概念...

    android聊天室客户端与服务端(PC)代码

    **Android客户端** Android客户端部分涉及以下几个关键知识点: 1. **Android SDK**:客户端应用的开发依赖于Android SDK,它提供了构建Android应用所需的各种工具和库。 2. **UI设计**:使用XML布局文件设计聊天...

    android客户端de登录注册源代码

    这个"android客户端de登录注册源代码"提供了一个完整的解决方案,将Android客户端与PHP服务器进行交互,实现用户的身份验证和数据管理。这里我们将深入探讨相关知识点。 1. **Android客户端开发**: - **Activity*...

    通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端

    本项目涉及的核心知识点是构建一个完整的登录系统,包括Android客户端、Web服务器以及MySQL数据库。以下将详细阐述每个环节的关键技术和步骤。 首先,**Android客户端**是用户与应用程序交互的界面。在这里,我们...

Global site tag (gtag.js) - Google Analytics