`

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

阅读更多

/*

 * 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();

}

}

 

}

注意:

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

 

分享到:
评论

相关推荐

    苹果授权登陆 服务端验证(java)

    本资源主要关注的是服务端验证的Java实现,这通常涉及到OAuth 2.0协议和JSON Web Tokens(JWTs)。以下是关于这个主题的详细知识点: 1. **OAuth 2.0 协议**:OAuth 2.0 是一种授权框架,用于安全地获取和使用用户...

    android.mac.ios平台的自动返回短信验证码接口java

    本文将详细解析"android.mac.ios平台的自动返回短信验证码接口java"这一主题,涵盖核心概念、设计原理以及实现方法。 首先,短信验证码是一种常见的身份验证手段,用于确保用户在进行敏感操作时是合法且知情的。它...

    Java自建云盘系统,含客户端与服务端

    2. 原生应用:使用Electron框架开发跨平台桌面客户端,或者针对iOS和Android的原生应用,集成系统级的文件管理功能。 3. 同步功能:客户端应具备实时同步功能,确保本地文件夹与云端数据一致。 四、性能优化与扩展...

    蓝牙服务端

    开发蓝牙服务端应用时,常见的编程语言包括Java(Android)、Swift(iOS)或C++(嵌入式系统)。开发者通常会使用平台提供的SDK,如Android的BluetoothGatt类或iOS的CoreBluetooth框架。对于跨平台应用,可以考虑...

    超过QQ的聊天服务端+客户端

    3. **客户端开发**:客户端可能使用了Android Studio或Xcode等工具,用Java、Kotlin、Swift或React Native等语言编写,包含UI设计、网络请求、消息推送等功能。 4. **安全性**:项目可能考虑了数据加密,如TLS/SSL...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    JAVA上百实例源码以及开源项目源代码

    Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    哇呼星聊即时通讯系统源码 Android+iOS+PC三端 附教程

    通过源码,用户可以深入了解即时通讯系统的架构与实现细节,并根据需求进行定制化开发。 ### 知识点二:服务器最低配置要求 为了确保哇呼星聊即时通讯系统的正常运行,服务器至少需要具备以下配置: - CPU:4核心...

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    client,keybase go库、客户端、服务、os x、ios、android、electron.zip

    通过研究这个分支,开发者可以了解Keybase客户端的主要架构和实现细节,包括如何与Keybase服务器进行通信、用户身份验证流程、数据加密算法等。 对于不同操作系统平台的支持,Keybase客户端通常会采用原生的开发...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    Java资源包01

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java training

    2. **Java网络编程**:红包功能涉及到网络通信,Java的Socket编程允许开发者创建客户端和服务端应用,实现数据的收发。支付宝口令红包需要处理用户请求、红包发放、余额查询等网络通信任务。 3. **Java多线程**:...

    高仿9158视频语音聊天网源码+服务端+客户端+网站程序

    5. **多平台支持**:可能包含iOS、Android、Web等多个版本,分别使用Swift/Objective-C、Java/Kotlin和Web技术栈开发。 【网站程序】 网站程序通常作为客户端的补充,允许用户在浏览器中进行基本操作,可能涉及: ...

Global site tag (gtag.js) - Google Analytics