开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 796|回复: 17
打印 上一主题 下一主题
收起左侧

[易源码分享] java HUTOOL转换易语言写法

[复制链接]
结帖率:50% (1/2)
跳转到指定楼层
楼主
发表于 2024-11-17 06:12:12 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   云南省楚雄彝族自治州
分享源码
界面截图:
是否带模块: -
备注说明: -
易语言写法下载: java HUTOOL转换易语言写法.txt (842 Bytes, 下载次数: 3, 售价: 3 枚 精币)

package com.dy.weld.util;

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.extern.slf4j.Slf4j;

import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

/**
* @author  
* 密钥必须为16字节或者16字节的倍数的字节型数据。
* 明文必须为16字节或者16字节的倍数的字节型数据,如果不够16字节需要进行补全。
*/
@Slf4j
public class AesUtil {

    private static AES aes = null;

    /**
     * 16字节
     */
    private static String keyStr = "1234567890ABCDEF1234567890ABCDEF";// 为了和mysql统一,长度必须为32位
    //长度为16位的盐值
    private static final String IV_KEY = "1234567890ABCDEF";

    static {
        // 构建
        //随机生成密钥
        SecretKeySpec secretKeySpec = new SecretKeySpec(getBytes(keyStr, 16), SymmetricAlgorithm.AES.getValue());
        IvParameterSpec ivParameterSpec = new IvParameterSpec(IV_KEY.getBytes());
        aes = new AES(Mode.CBC, Padding.PKCS5Padding, secretKeySpec, ivParameterSpec);
    }

    /**
     * 破J时密匙长度是规定了的
     * 如果密匙长度有问题会报错:Key length not 128/192/256 bits.
     * 意思就比如密匙长度不是16位 就会报错~
     * 所以需要填充密匙长度
     *
     * @param s
     * @param length
     * @return
     */
    private static byte[] getBytes(String s, int length) {
        int fixLength = length - s.getBytes().length;
        if (s.getBytes().length < length) {
            byte[] S_bytes = new byte[length];
            System.arraycopy(s.getBytes(), 0, S_bytes, 0, s.getBytes().length);
            for (int x = length - fixLength; x < length; x++) {
                S_bytes[x] = 0x00;
            }
            return S_bytes;
        }
        return s.getBytes();
    }

    /**
     * 加密
     *
     * @param content 原文
     * @Return  加密后的密文
     */
    public static String encryptHex(String content) {
        if (StringUtils.isBlank(content)) {
            return content;
        }
        try{
            // 加密为16进制表示
            return aes.encryptHex(content);
        }catch (Exception e){
            log.error("加密失败, 原文:{}", content, e);
            return content;
        }
    }

    /**
     * 解密
     *
     * @param encryptHex 密文
     * @return 解密后的原文
     */
    public static String decryptHex(String encryptHex) {
        // 解密为字符串
        try {
            if (StringUtils.isBlank(encryptHex)) {
                return encryptHex;
            }
            return aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
        } catch (Exception e) {
            log.error("解密失败, 原文:{}", encryptHex, e);
            return encryptHex;
        }
    }

    public static void main(String[] args) {
        String content = "659C09DE";
        log.info("content:{}", content);
        // 加密为16进制表示
        String encryptHex = encryptHex(content);
        log.info("encryptHex:{}", encryptHex.toUpperCase());
        // 解密为字符串
        String decryptStr = decryptHex(encryptHex);
        log.info("decryptStr:{}", decryptStr);

    }

}



点评

你转个锤子,这是AI转的,有个毛用。   湖南省长沙市  发表于 2024-11-17 18:37

17
发表于 2024-12-4 02:03:06 | 只看该作者   北京市北京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (20/20)

签到天数: 13 天

16
发表于 2024-11-21 09:38:45 | 只看该作者   重庆市重庆市
感谢大佬无私分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
15
发表于 2024-11-20 14:18:19 | 只看该作者   浙江省杭州市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

签到天数: 9 天

14
发表于 2024-11-20 09:39:40 | 只看该作者   浙江省宁波市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

13
发表于 2024-11-19 19:42:52 | 只看该作者   江苏省连云港市
感谢分享
回复 支持 反对

使用道具 举报

签到天数: 9 天

12
发表于 2024-11-19 09:37:03 | 只看该作者   浙江省宁波市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

11
发表于 2024-11-18 20:07:52 | 只看该作者   江苏省连云港市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 13 天

10
发表于 2024-11-18 08:12:24 | 只看该作者   山东省淄博市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:96% (53/55)

签到天数: 13 天

9
发表于 2024-11-18 07:11:46 | 只看该作者   山东省青岛市
感谢发布原创作品,精易因你更精彩!6666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表