/*
* 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实现,这通常涉及到OAuth 2.0协议和JSON Web Tokens(JWTs)。以下是关于这个主题的详细知识点: 1. **OAuth 2.0 协议**:OAuth 2.0 是一种授权框架,用于安全地获取和使用用户...
本文将详细解析"android.mac.ios平台的自动返回短信验证码接口java"这一主题,涵盖核心概念、设计原理以及实现方法。 首先,短信验证码是一种常见的身份验证手段,用于确保用户在进行敏感操作时是合法且知情的。它...
2. 原生应用:使用Electron框架开发跨平台桌面客户端,或者针对iOS和Android的原生应用,集成系统级的文件管理功能。 3. 同步功能:客户端应具备实时同步功能,确保本地文件夹与云端数据一致。 四、性能优化与扩展...
开发蓝牙服务端应用时,常见的编程语言包括Java(Android)、Swift(iOS)或C++(嵌入式系统)。开发者通常会使用平台提供的SDK,如Android的BluetoothGatt类或iOS的CoreBluetooth框架。对于跨平台应用,可以考虑...
3. **客户端开发**:客户端可能使用了Android Studio或Xcode等工具,用Java、Kotlin、Swift或React Native等语言编写,包含UI设计、网络请求、消息推送等功能。 4. **安全性**:项目可能考虑了数据加密,如TLS/SSL...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
通过源码,用户可以深入了解即时通讯系统的架构与实现细节,并根据需求进行定制化开发。 ### 知识点二:服务器最低配置要求 为了确保哇呼星聊即时通讯系统的正常运行,服务器至少需要具备以下配置: - CPU:4核心...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
通过研究这个分支,开发者可以了解Keybase客户端的主要架构和实现细节,包括如何与Keybase服务器进行通信、用户身份验证流程、数据加密算法等。 对于不同操作系统平台的支持,Keybase客户端通常会采用原生的开发...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
2. **Java网络编程**:红包功能涉及到网络通信,Java的Socket编程允许开发者创建客户端和服务端应用,实现数据的收发。支付宝口令红包需要处理用户请求、红包发放、余额查询等网络通信任务。 3. **Java多线程**:...
5. **多平台支持**:可能包含iOS、Android、Web等多个版本,分别使用Swift/Objective-C、Java/Kotlin和Web技术栈开发。 【网站程序】 网站程序通常作为客户端的补充,允许用户在浏览器中进行基本操作,可能涉及: ...