签入版本
This commit is contained in:
+161
@@ -0,0 +1,161 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.KeyGenerator;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AES算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class AESUtil {
|
||||
|
||||
/**
|
||||
* 生成密钥
|
||||
*
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] initKey() throws Exception {
|
||||
//密钥生成器
|
||||
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
|
||||
//初始化密钥生成器
|
||||
keyGen.init(128); //默认128,获得无政策权限后可用192或256
|
||||
//生成密钥
|
||||
SecretKey secretKey = keyGen.generateKey();
|
||||
return secretKey.getEncoded();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密
|
||||
*
|
||||
* @param data 加密数据
|
||||
* @param key 加密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] encryptAES(byte[] data, byte[] key) throws Exception {
|
||||
//恢复密钥
|
||||
SecretKey secretKey = new SecretKeySpec(key, "AES");
|
||||
//Cipher完成加密
|
||||
Cipher cipher = Cipher.getInstance("AES");
|
||||
//根据密钥对cipher进行初始化
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
|
||||
//加密
|
||||
byte[] encrypt = cipher.doFinal(data);
|
||||
|
||||
return encrypt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密
|
||||
*
|
||||
* @param data 解密数据
|
||||
* @param key 解密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] decryptAES(byte[] data, byte[] key) throws Exception {
|
||||
//恢复密钥生成器
|
||||
SecretKey secretKey = new SecretKeySpec(key, "AES");
|
||||
//Cipher完成解密
|
||||
Cipher cipher = Cipher.getInstance("AES");
|
||||
//根据密钥对cipher进行初始化
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKey);
|
||||
byte[] plain = cipher.doFinal(data);
|
||||
return plain;
|
||||
}
|
||||
|
||||
//待加密的原文
|
||||
public static final String DATA = "hi, welcome to my git area!";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
//获得密钥
|
||||
byte[] aesKey = AESUtil.initKey();
|
||||
System.out.println("AES 密钥 : " + BytesToHex.fromBytesToHex(aesKey));
|
||||
//加密
|
||||
byte[] encrypt = AESUtil.encryptAES(DATA.getBytes(), aesKey);
|
||||
System.out.println(DATA + " AES 加密 : " + BytesToHex.fromBytesToHex(encrypt));
|
||||
|
||||
//解密
|
||||
byte[] plain = AESUtil.decryptAES(encrypt, aesKey);
|
||||
System.out.println(DATA + " AES 解密 : " + new String(plain));
|
||||
}
|
||||
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* BASE64算法实现加解密
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class Base64Util {
|
||||
|
||||
// /**
|
||||
// * base64算法加密
|
||||
// *
|
||||
// * @param data
|
||||
// * @return
|
||||
// */
|
||||
// public static String base64Encrypt(byte[] data) {
|
||||
// String result = new BASE64Encoder().encode(data);
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * base64算法解密
|
||||
// *
|
||||
// * @param data
|
||||
// * @return
|
||||
// * @throws Exception
|
||||
// */
|
||||
// public static String base64Decrypt(String data) throws Exception {
|
||||
// byte[] resultBytes = new BASE64Decoder().decodeBuffer(data);
|
||||
// return new String(resultBytes);
|
||||
// }
|
||||
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AES算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class BytesToHex {
|
||||
|
||||
public static String fromBytesToHex(byte[] resultBytes) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 0; i < resultBytes.length; i++) {
|
||||
if (Integer.toHexString(0xFF & resultBytes[i]).length() == 1) {
|
||||
builder.append("0").append(Integer.toHexString(0xFF & resultBytes[i]));
|
||||
} else {
|
||||
builder.append(Integer.toHexString(0xFF & resultBytes[i]));
|
||||
}
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(Integer.toHexString(0xFF & 15));
|
||||
}
|
||||
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.KeyGenerator;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* DES算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class DESUtil {
|
||||
|
||||
/**
|
||||
* 生成密钥
|
||||
*
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] initKey() throws Exception {
|
||||
//密钥生成器
|
||||
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
|
||||
//初始化密钥生成器
|
||||
keyGen.init(56);
|
||||
//生成密钥
|
||||
SecretKey secretKey = keyGen.generateKey();
|
||||
return secretKey.getEncoded();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密
|
||||
*
|
||||
* @param data 加密数据
|
||||
* @param key 加密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] encryptDES(byte[] data, byte[] key) throws Exception {
|
||||
//获得密钥
|
||||
SecretKey secretKey = new SecretKeySpec(key, "DES");
|
||||
//Cipher完成加密
|
||||
Cipher cipher = Cipher.getInstance("DES");
|
||||
//初始化cipher
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
|
||||
//加密
|
||||
byte[] encrypt = cipher.doFinal(data);
|
||||
return encrypt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密
|
||||
*
|
||||
* @param data 解密数据
|
||||
* @param key 解密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] decryptDES(byte[] data, byte[] key) throws Exception {
|
||||
//恢复密钥
|
||||
SecretKey secretKey = new SecretKeySpec(key, "DES");
|
||||
//Cipher完成解密
|
||||
Cipher cipher = Cipher.getInstance("DES");
|
||||
//初始化cipher
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKey);
|
||||
//解密
|
||||
byte[] plain = cipher.doFinal(data);
|
||||
return plain;
|
||||
}
|
||||
|
||||
//待加密原文
|
||||
public static final String DATA = "hi, welcome to my git area!";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
byte[] desKey = DESUtil.initKey();
|
||||
System.out.println("DES Key : " + BytesToHex.fromBytesToHex(desKey));
|
||||
byte[] desReult = DESUtil.encryptDES(DATA.getBytes(), desKey);
|
||||
System.out.println(DATA + "DES 加密 =====>>>>>>> " + BytesToHex.fromBytesToHex(desReult));
|
||||
byte[] plain = DESUtil.decryptDES(desReult, desKey);
|
||||
System.out.println(DATA + "DES 解密 =====>>>>>>> " + new String(plain));
|
||||
}
|
||||
|
||||
}
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.KeyGenerator;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* DESede算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class DESedeUtil {
|
||||
|
||||
/**
|
||||
* 生成密钥
|
||||
*
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] initKey() throws Exception {
|
||||
//密钥生成器
|
||||
KeyGenerator keyGen = KeyGenerator.getInstance("DESede");
|
||||
//初始化密钥生成器
|
||||
keyGen.init(168); //可指定密钥长度为112或168,默认168
|
||||
//生成密钥
|
||||
SecretKey secretKey = keyGen.generateKey();
|
||||
return secretKey.getEncoded();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密
|
||||
*
|
||||
* @param data 加密数据
|
||||
* @param key 加密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] encrypt3DES(byte[] data, byte[] key) throws Exception {
|
||||
//恢复密钥
|
||||
SecretKey secretKey = new SecretKeySpec(key, "DESede");
|
||||
//Cipher完成加密
|
||||
Cipher cipher = Cipher.getInstance("DESede");
|
||||
//cipher初始化
|
||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
|
||||
byte[] encrypt = cipher.doFinal(data);
|
||||
|
||||
return encrypt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密
|
||||
*
|
||||
* @param data 解密数据
|
||||
* @param key 解密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] decrypt3DES(byte[] data, byte[] key) throws Exception {
|
||||
//恢复密钥
|
||||
SecretKey secretKey = new SecretKeySpec(key, "DESede");
|
||||
//Cipher完成解密
|
||||
Cipher cipher = Cipher.getInstance("DESede");
|
||||
//初始化cipher
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKey);
|
||||
byte[] plain = cipher.doFinal(data);
|
||||
return plain;
|
||||
}
|
||||
|
||||
//待加密原文
|
||||
public static final String DATA = "hi, welcome to my git area!";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
//获取密钥
|
||||
byte[] key = DESedeUtil.initKey();
|
||||
System.out.println("3DES 密钥 : " + BytesToHex.fromBytesToHex(key));
|
||||
//加密
|
||||
byte[] encrypt = DESedeUtil.encrypt3DES(DATA.getBytes(), key);
|
||||
System.out.println(DATA + " 3DES 加密 : " + BytesToHex.fromBytesToHex(encrypt));
|
||||
byte[] plain = DESedeUtil.decrypt3DES(encrypt, key);
|
||||
System.out.println(DATA + " 3DES 解密: " + new String(plain));
|
||||
}
|
||||
|
||||
}
|
||||
+256
@@ -0,0 +1,256 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
import javax.crypto.KeyAgreement;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.interfaces.DHPrivateKey;
|
||||
import javax.crypto.interfaces.DHPublicKey;
|
||||
import javax.crypto.spec.DHParameterSpec;
|
||||
import java.security.*;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.security.spec.X509EncodedKeySpec;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* DH算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class DHUtil {
|
||||
|
||||
/**
|
||||
* 公钥
|
||||
*/
|
||||
public static final String PUBLIC_KEY = "DHPublicKey";
|
||||
|
||||
/**
|
||||
* 私钥
|
||||
*/
|
||||
public static final String PRIVATE_KEY = "DHPrivateKey";
|
||||
|
||||
/**
|
||||
* 甲方初始化并返回密钥对
|
||||
*
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static Map<String, Object> initKey() throws Exception {
|
||||
//实例化密钥对生成器
|
||||
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DH");
|
||||
//初始化密钥对生成器 默认是1024 512-1024 & 64的倍数
|
||||
keyPairGenerator.initialize(1024);
|
||||
//生成密钥对
|
||||
KeyPair keyPair = keyPairGenerator.generateKeyPair();
|
||||
//得到甲方公钥
|
||||
DHPublicKey publicKey = (DHPublicKey) keyPair.getPublic();
|
||||
//得到甲方私钥
|
||||
DHPrivateKey peivateKey = (DHPrivateKey) keyPair.getPrivate();
|
||||
//将公钥和私钥封装到Map中,方便之后使用
|
||||
Map<String, Object> keyMap = new HashMap<String, Object>();
|
||||
keyMap.put(PUBLIC_KEY, publicKey);
|
||||
keyMap.put(PRIVATE_KEY, peivateKey);
|
||||
return keyMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 乙方根据甲方公钥初始化并返回密钥对
|
||||
*
|
||||
* @param key 加密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static Map<String, Object> initKey(byte[] key) throws Exception {
|
||||
//将甲方公钥从字节数组转换为publicKey
|
||||
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(key);
|
||||
//实例化密钥工厂
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("DH");
|
||||
//产生甲方公钥pubKey
|
||||
DHPublicKey dhPublicKey = (DHPublicKey) keyFactory.generatePublic(keySpec);
|
||||
//剖析甲方公钥,得到其参数
|
||||
DHParameterSpec dhParameterSpec = dhPublicKey.getParams();
|
||||
//实例化密钥对生成器
|
||||
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DH");
|
||||
//用甲方公钥初始化密钥对生成器
|
||||
keyPairGenerator.initialize(dhParameterSpec);
|
||||
//产生密钥对
|
||||
KeyPair keyPair = keyPairGenerator.generateKeyPair();
|
||||
//得到乙方公钥
|
||||
DHPublicKey publicKey = (DHPublicKey) keyPair.getPublic();
|
||||
//得到乙方私钥
|
||||
DHPrivateKey privateKey = (DHPrivateKey) keyPair.getPrivate();
|
||||
//将公钥和私钥封装到Map中,方便以后使用
|
||||
Map<String, Object> keyMap = new HashMap<String, Object>();
|
||||
keyMap.put(PUBLIC_KEY, publicKey);
|
||||
keyMap.put(PRIVATE_KEY, privateKey);
|
||||
|
||||
return keyMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据对方的公钥和自己的私钥生成本地密钥
|
||||
*
|
||||
* @param publicKey 公钥KEY
|
||||
* @param privateKey 私钥KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] getSecretKey(byte[] publicKey, byte[] privateKey) throws Exception {
|
||||
//实例化密钥工厂
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("DH");
|
||||
//将公钥从字节数组转换为publicKey
|
||||
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(publicKey);
|
||||
PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
|
||||
//将私钥从字节数组转换为privateKey
|
||||
PKCS8EncodedKeySpec priKeySpec = new PKCS8EncodedKeySpec(privateKey);
|
||||
PrivateKey priKey = keyFactory.generatePrivate(priKeySpec);
|
||||
//准备根据以上公钥和私钥生成本地密钥SecretKey
|
||||
//先实例化KeyAgreement
|
||||
KeyAgreement keyAgreement = KeyAgreement.getInstance("DH");
|
||||
//用自己的私钥初始化keyAgreement
|
||||
keyAgreement.init(priKey);
|
||||
//结合对方的公钥进行运算
|
||||
keyAgreement.doPhase(pubKey, true);
|
||||
//开始生成本地密钥secretKey 密钥算法为对称密码算法
|
||||
SecretKey secretKey = keyAgreement.generateSecret("DES"); //DES、3DES、AES
|
||||
return secretKey.getEncoded();
|
||||
}
|
||||
|
||||
/**
|
||||
* 从Map中取得公钥
|
||||
*
|
||||
* @param keyMap KEY集合
|
||||
* @return 返回结果
|
||||
*/
|
||||
public static byte[] getPublicKey(Map<String, Object> keyMap) {
|
||||
DHPublicKey key = (DHPublicKey) keyMap.get(PUBLIC_KEY);
|
||||
return key.getEncoded();
|
||||
}
|
||||
|
||||
/**
|
||||
* 从Map中取得私钥
|
||||
*
|
||||
* @param keyMap KEY集合
|
||||
* @return 返回结果
|
||||
*/
|
||||
public static byte[] getPrivateKey(Map<String, Object> keyMap) {
|
||||
DHPrivateKey key = (DHPrivateKey) keyMap.get(PRIVATE_KEY);
|
||||
return key.getEncoded();
|
||||
}
|
||||
|
||||
//待加密原文
|
||||
public static final String DATA = "hi, welcome to my git area!";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
//甲方公钥
|
||||
byte[] publicKey1;
|
||||
//甲方私钥
|
||||
byte[] privateKey1;
|
||||
//甲方本地密钥
|
||||
byte[] secretKey1;
|
||||
//乙方公钥
|
||||
byte[] publicKey2;
|
||||
//乙方私钥
|
||||
byte[] privateKey2;
|
||||
//乙方本地密钥
|
||||
byte[] secretKey2;
|
||||
|
||||
//初始化密钥,并生成甲方密钥对
|
||||
Map<String, Object> keyMap1 = DHUtil.initKey();
|
||||
publicKey1 = DHUtil.getPublicKey(keyMap1);
|
||||
privateKey1 = DHUtil.getPrivateKey(keyMap1);
|
||||
System.out.println("DH 甲方公钥: " + BytesToHex.fromBytesToHex(publicKey1));
|
||||
System.out.println("DH 甲方私钥: " + BytesToHex.fromBytesToHex(privateKey1));
|
||||
|
||||
//乙方根据甲方公钥产生乙方密钥对
|
||||
Map<String, Object> keyMap2 = DHUtil.initKey(publicKey1);
|
||||
publicKey2 = DHUtil.getPublicKey(keyMap2);
|
||||
privateKey2 = DHUtil.getPrivateKey(keyMap2);
|
||||
System.out.println("DH 乙方公钥: " + BytesToHex.fromBytesToHex(publicKey2));
|
||||
System.out.println("DH 乙方私钥: " + BytesToHex.fromBytesToHex(privateKey2));
|
||||
|
||||
//对于甲方,根据其私钥和乙方发过来的公钥, 生成其本地密钥secretKey1
|
||||
secretKey1 = DHUtil.getSecretKey(publicKey2, privateKey1);
|
||||
System.out.println("DH 甲方 本地密钥: " + BytesToHex.fromBytesToHex(secretKey1));
|
||||
|
||||
//对于乙方,根据其私钥和甲方发过来的公钥,生成其本地密钥secretKey2
|
||||
secretKey2 = DHUtil.getSecretKey(publicKey1, privateKey2);
|
||||
System.out.println("DH 乙方 本地密钥: " + BytesToHex.fromBytesToHex(secretKey2));
|
||||
|
||||
//加密
|
||||
}
|
||||
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* DM5工具类
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class MD5Util {
|
||||
|
||||
/**
|
||||
* MD5方法
|
||||
*
|
||||
* @param input 原始字符串
|
||||
* @return 返回结果
|
||||
*/
|
||||
public static String md5(byte[] input) {
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(input);
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (byte b : md.digest()) {
|
||||
buf.append(String.format("%02x", b & 0xff));
|
||||
}
|
||||
return buf.toString();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成MD5加密字符串(32位小写)
|
||||
*
|
||||
* @param input 原始字符串
|
||||
* @return 加密结果
|
||||
*/
|
||||
public static String md5(String input) {
|
||||
if (input == null || input.length() == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
byte[] digest = md.digest(input.getBytes());
|
||||
return byteArrayToHex(digest);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
throw new RuntimeException("MD5 algorithm not found", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成MD5加密字符串(带盐值)
|
||||
*
|
||||
* @param input 原始字符串
|
||||
* @param salt 盐值
|
||||
* @return 加密结果
|
||||
*/
|
||||
public static String md5WithSalt(String input, String salt) {
|
||||
return md5(input + salt);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证字符串与MD5是否匹配
|
||||
*
|
||||
* @param input 原始字符串
|
||||
* @param md5Str 待比较的MD5值
|
||||
* @return 是否匹配
|
||||
*/
|
||||
public static boolean verify(String input, String md5Str) {
|
||||
return md5(input).equalsIgnoreCase(md5Str);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证字符串与MD5是否匹配(带盐值)
|
||||
*
|
||||
* @param input 原始字符串
|
||||
* @param salt 盐值
|
||||
* @param md5Str 待比较的MD5值
|
||||
* @return 是否匹配
|
||||
*/
|
||||
public static boolean verifyWithSalt(String input, String salt, String md5Str) {
|
||||
return md5WithSalt(input, salt).equalsIgnoreCase(md5Str);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字节数组转十六进制字符串
|
||||
*/
|
||||
private static String byteArrayToHex(byte[] bytes) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : bytes) {
|
||||
sb.append(String.format("%02x", b));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
// 测试示例
|
||||
public static void main(String[] args) {
|
||||
String plainText = "HelloWorld123";
|
||||
String salt = "RandomSalt";
|
||||
|
||||
// 基础MD5
|
||||
String md5Hash = md5(plainText);
|
||||
System.out.println("MD5加密结果: " + md5Hash);
|
||||
System.out.println("验证结果: " + verify(plainText, md5Hash));
|
||||
|
||||
// 带盐值的MD5
|
||||
String saltedHash = md5WithSalt(plainText, salt);
|
||||
System.out.println("带盐值MD5加密结果: " + saltedHash);
|
||||
System.out.println("带盐值验证结果: " + verifyWithSalt(plainText, salt, saltedHash));
|
||||
}
|
||||
|
||||
}
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
// +======================================================================
|
||||
// | 小蚂蚁云·企业数字化开发平台 [ 加速数字化转型,构建智能未来 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 核心价值:赋能开发者 · 服务企业 · 共建生态
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2020-2026 小蚂蚁云团队 版权所有
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方平台: https://www.xiaomayicloud.com
|
||||
// +======================================================================
|
||||
// | 【知识产权声明】
|
||||
// | 1. 权属声明:本软件是受《中华人民共和国著作权法》
|
||||
// | 保护的专有财产,完整版权归小蚂蚁云团队所有
|
||||
// | 2. 权利范围:所有知识产权(商标、专利、著作权、
|
||||
// | 商业秘密等)均归小蚂蚁云团队所有,受法律保护
|
||||
// | 3. 授权性质:用户仅可获得有限的、非独占的使用许可
|
||||
// | 4. 禁止行为:未经书面授权,禁止对本软件本身
|
||||
// | 申请任何知识产权
|
||||
// | 5. 权利保留:未在本协议中明示授予的一切权利
|
||||
// | 均由小蚂蚁云团队保留
|
||||
// +======================================================================
|
||||
// | 【授权状态说明】
|
||||
// | 1. 未授权状态:用户未购买有效的商业许可证
|
||||
// | 2. 商业授权:已购买正式商业许可证的用户
|
||||
// +======================================================================
|
||||
// | 【绝对禁止条款】
|
||||
// | 无论授权状态如何,任何用户均严格禁止以下行为:
|
||||
// | 1. 逆向工程:对软件进行反编译、反汇编、技术破解或任何形式的逆向分析
|
||||
// | 2. 版权破坏:移除、修改、遮挡软件中的版权标识、许可控制或技术保护措施
|
||||
// | 3. 非法传播:复制、分发、出租、出借、转售、再许可本软件或其许可权利
|
||||
// | 4. 竞争性使用:利用本软件的代码、架构、设计开发直接竞争的产品或服务
|
||||
// | 5. 侵权使用:将软件用于侵犯第三方知识产权或其他合法权益的用途
|
||||
// +======================================================================
|
||||
// | 【商业授权许可范围】
|
||||
// | 购买有效商业许可证的用户,在遵守上述禁止条款的前提下,获得:
|
||||
// | 1. 使用权利:在许可证约定的项目数量、开发者数量范围内使用本软件
|
||||
// | 2. 技术支持:商业授权用户可以获取本地开发部署的技术支持服务
|
||||
// | 3. 版本更新:在许可证有效期内获取软件更新、安全补丁和功能增强
|
||||
// | 4. 商业部署:将基于本软件开发的应用程序用于商业运营和生产环境
|
||||
// +======================================================================
|
||||
// | 【许可证获取】
|
||||
// | 1. 获取途径:仅通过小蚂蚁云官方渠道购买(官网、授权代理商),购买记录凭证
|
||||
// | 2. 转让限制:许可证与购买主体绑定,未经书面同意不得转让
|
||||
// | 3. 终止情形:许可证到期、违反协议、破产清算等情况下自动终止
|
||||
// +======================================================================
|
||||
// | 【合法使用要求】
|
||||
// | 1. 仅限用于合法合规的软件研发
|
||||
// | 2. 严禁用于任何违法、侵权或恶意行为
|
||||
// | 3. 严禁违反我国法律法规和政策
|
||||
// +======================================================================
|
||||
// | 【免责声明】
|
||||
// | 因使用本框架导致的以下情况,我们概不负责:
|
||||
// | 1. 项目研发中的意外、疏忽、违约等风险
|
||||
// | 2. 侵犯第三方知识产权或其他合法权益
|
||||
// | 3. 任何直接、间接、附带或衍生一切损失
|
||||
// | 4. 用户违规违法行为的一切法律后果
|
||||
// +======================================================================
|
||||
// | 【协议重要提示】
|
||||
// | 1. 本声明是《小蚂蚁云最终用户许可协议》的摘要版本
|
||||
// | 2. 下载、安装或使用本软件即表示您接受全部协议条款
|
||||
// | 3. 我们保留单方面修改本声明的权利,修改后的版本在官网公布即生效
|
||||
// | 4. 用户有义务定期查看最新版本,继续使用视为接受修改
|
||||
// +======================================================================
|
||||
// | 【侵权举报与合规】
|
||||
// | 1. 知识产权侵权举报:请联系官方客服
|
||||
// | 2. 许可证合规咨询:xiaomayicloud@163.com
|
||||
// | 3. 违规使用将终止授权并追究责任
|
||||
// | 4. 无条件配合司法机关调查取证
|
||||
// | 5. 保留一切法律追诉权利
|
||||
// | 6. 对有效举报和合规建议,我们将给予感谢和奖励
|
||||
// +======================================================================
|
||||
|
||||
package com.xiaomayi.encrypt.utils;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import java.security.KeyPair;
|
||||
import java.security.KeyPairGenerator;
|
||||
import java.security.interfaces.RSAPrivateKey;
|
||||
import java.security.interfaces.RSAPublicKey;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* RSA算法实现
|
||||
* </p>
|
||||
*
|
||||
* @author 小蚂蚁云团队
|
||||
* @since 2024-06-13
|
||||
*/
|
||||
public class RSAUtil {
|
||||
|
||||
public static final String PUBLIC_KEY = "RSAPublicKey";
|
||||
public static final String PRIVATE_KEY = "RSAPrivateKey";
|
||||
|
||||
/**
|
||||
* 生成RSA的公钥和私钥
|
||||
*
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static Map<String, Object> initKey() throws Exception {
|
||||
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
|
||||
keyPairGenerator.initialize(1024); //512-65536 & 64的倍数
|
||||
KeyPair keyPair = keyPairGenerator.generateKeyPair();
|
||||
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
|
||||
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
|
||||
Map<String, Object> keyMap = new HashMap<String, Object>();
|
||||
keyMap.put(PUBLIC_KEY, publicKey);
|
||||
keyMap.put(PRIVATE_KEY, privateKey);
|
||||
return keyMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得公钥
|
||||
*
|
||||
* @param keyMap KEY集合
|
||||
* @return 返回结果
|
||||
*/
|
||||
public static RSAPublicKey getpublicKey(Map<String, Object> keyMap) {
|
||||
RSAPublicKey publicKey = (RSAPublicKey) keyMap.get(PUBLIC_KEY);
|
||||
return publicKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得私钥
|
||||
*
|
||||
* @param keyMap KEY集合
|
||||
* @return 返回结果
|
||||
*/
|
||||
public static RSAPrivateKey getPrivateKey(Map<String, Object> keyMap) {
|
||||
RSAPrivateKey privateKey = (RSAPrivateKey) keyMap.get(PRIVATE_KEY);
|
||||
return privateKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* 公钥加密
|
||||
*
|
||||
* @param data 加密数据
|
||||
* @param publicKey 加密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] encrypt(byte[] data, RSAPublicKey publicKey) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance("RSA");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
|
||||
byte[] cipherBytes = cipher.doFinal(data);
|
||||
return cipherBytes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 私钥解密
|
||||
*
|
||||
* @param data 解密数据
|
||||
* @param privateKey 解密KEY
|
||||
* @return 返回结果
|
||||
* @throws Exception 异常处理
|
||||
*/
|
||||
public static byte[] decrypt(byte[] data, RSAPrivateKey privateKey) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance("RSA");
|
||||
cipher.init(Cipher.DECRYPT_MODE, privateKey);
|
||||
byte[] plainBytes = cipher.doFinal(data);
|
||||
return plainBytes;
|
||||
}
|
||||
|
||||
//待加密原文
|
||||
public static final String DATA = "hi, welcome to my git area!";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Map<String, Object> keyMap = RSAUtil.initKey();
|
||||
|
||||
RSAPublicKey rsaPublicKey = RSAUtil.getpublicKey(keyMap);
|
||||
RSAPrivateKey rsaPrivateKey = RSAUtil.getPrivateKey(keyMap);
|
||||
System.out.println("RSA PublicKey: " + rsaPublicKey);
|
||||
System.out.println("RSA PrivateKey: " + rsaPrivateKey);
|
||||
|
||||
byte[] rsaResult = RSAUtil.encrypt(DATA.getBytes(), rsaPublicKey);
|
||||
System.out.println(DATA + "====>>>> RSA 加密>>>>====" + BytesToHex.fromBytesToHex(rsaResult));
|
||||
|
||||
byte[] plainResult = RSAUtil.decrypt(rsaResult, rsaPrivateKey);
|
||||
System.out.println(DATA + "====>>>> RSA 解密>>>>====" + BytesToHex.fromBytesToHex(plainResult));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user