java服务端与ios,android实现简单数据加密工具_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java服务端与ios,android实现简单数据加密工具

java服务端与ios,android实现简单数据加密工具

 2015/4/2 21:50:05  Mrchaixs  程序员俱乐部  我要评论(0)
  • 摘要:/**DES3.java*Copyright(c)2015*Allrightsreserved.*---------------------------*2015年3月30日Created*/packagecom.mango.p2p.utils;importjava.security.Key;importjavax.crypto.Cipher;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESedeKeySpec
  • 标签:android 实现 服务端 iOS 工具 Java 数据 服务

/*

?* DES3.java

?* Copyright (c) 2015?

?* All rights reserved.

?* ---------------------------

?* 2015年3月30日 Created

?*/

package com.mango.p2p.utils;

?

import java.security.Key;

?

import javax.crypto.Cipher;

import javax.crypto.SecretKeyFactory;

import javax.crypto.spec.DESedeKeySpec;

import javax.crypto.spec.IvParameterSpec;

?

/**

?*?

?* DES3加解密

?*?

?* @author chaizhilei

?* @version 1.0 2015年3月30日

?*?

?*/

public class DES3 {

// 密钥

private final static String secretKey = "jinrong-online.com-app-c";

// 向量

private final static String iv = "01234567";

// 加解密统一使用的编码方式

private final static String encoding = "utf-8";

?

/**

* 3DES加密

*?

* @param plainText

* ? ? ? ? ? ?普通文本

* @return

* @throws Exception

*/

public static String encode(String plainText) throws Exception {

Key deskey = null;

DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());

SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");

deskey = keyfactory.generateSecret(spec);

?

Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");

IvParameterSpec ips = new IvParameterSpec(iv.getBytes());

cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);

byte[] encryptData = cipher.doFinal(plainText.getBytes(encoding));

return Base64.encodeToString(encryptData, Base64.DEFAULT);

}

?

/**

* 3DES解密

*?

* @param encryptText

* ? ? ? ? ? ?加密文本

* @return

* @throws Exception

*/

public static String decode(String encryptText) throws Exception {

Key deskey = null;

DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());

SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");

deskey = keyfactory.generateSecret(spec);

Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");

IvParameterSpec ips = new IvParameterSpec(iv.getBytes());

cipher.init(Cipher.DECRYPT_MODE, deskey, ips);

?

byte[] decryptData = cipher.doFinal(Base64.decode(encryptText, Base64.DEFAULT));

?

return new String(decryptData, encoding);

}

?

public static void main(String[] args) {

try {

String jiami = encode("ABC");

System.out.println("加密后的结果" + jiami);

String jiemi = decode(jiami);

System.out.println("解密结果" + jiemi);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

?

}

注意:

一定要确保服务器端的密文和客户端的密文是一样的

?

上一篇: JDBC操作数据库基本步骤 下一篇: 没有下一篇了!
发表评论
用户名: 匿名