Idea Maven 构建,运行Java程序,二次开发Jmeter

news2025/4/26 18:38:47

Idea Maven 构建

  • 1. maven下载
  • 2. Idea 配置
  • 3. 配置Maven镜像
  • 4. 在Maven项目pom.xml中添加依赖
  • 5. 创建jar包,更新pom,执行代码

1. maven下载

【官网】https://maven.apache.org/download.cgi
在这里插入图片描述

【其他版本】https://dlcdn.apache.org/maven/maven-3/

在这里插入图片描述

2. Idea 配置

  1. 在Idea界面上关闭所有项目,全局配置:Ctrl + Alt + S 打开设置,搜索maven,配置如下
(1) maven home path: D:/Program Files/Java/apache-maven-3.9.1
(2)User seeting file:D:\Program Files\Java\apache-maven-3.9.1\conf\settings.xml
(3) Local repository :D:\Program Files\Java\repository

在这里插入图片描述
2. 配置运行程序Runner

-DarchetypeCatalog=internal

在这里插入图片描述

3. 配置Maven镜像

【阿里云效】https://developer.aliyun.com/mvn/guide

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

在这里插入图片描述

4. 在Maven项目pom.xml中添加依赖

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
    </dependencies>

5. 创建jar包,更新pom,执行代码

右击Java -> New -> Package
在这里插入图片描述
输入package名称 -> 新建Java文件
在这里插入图片描述
点击idea右侧的 Maven图标-> 点击左上角刷新,更近pom中的依赖包
在这里插入图片描述
运行下面代码

package org.apache.jmeter.functions;

/**
 * @author heartingme
 * @date 2023/1/10 4:25 下午
 * movingbrick
 */

import org.apache.commons.lang3.StringUtils;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;



/**
 * @author heartingme
 * @date 2023/1/10 9:20 下午
 * movingbrick
 */
public class AESUtil {
    /**
     * 编码
     */
    private static final String ENCODING = "UTF-8";
    /**
     * 算法定义
     */
    private static final String AES_ALGORITHM = "AES";
    /**
     * 指定填充方式
     */
    private static final String CIPHER_PADDING = "AES/ECB/PKCS5Padding";

    /**
     * AES加密
     *
     * @param content 待加密内容
     * @param aesKey  密码
     * @return
     */
    public static String encrypt(String content, String aesKey) {
        if (StringUtils.isBlank(content)) {
            return null;
        }
        //判断秘钥是否为16if (StringUtils.isNotBlank(aesKey) && aesKey.length() == 16) {
            try {
                //对密码进行编码
                byte[] bytes = aesKey.getBytes(ENCODING);
                //设置加密算法,生成秘钥
                SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_ALGORITHM);
                // "算法/模式/补码方式"
                Cipher cipher = Cipher.getInstance(CIPHER_PADDING);
                //选择加密
                cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
                //根据待加密内容生成字节数组
                byte[] encrypted = cipher.doFinal(content.getBytes(ENCODING));
                //返回base64字符串
                Base64.Encoder encoder = Base64.getEncoder();
                return encoder.encodeToString(encrypted);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }

        } else {
            return "secret key length should be i6";
        }
    }

    /**
     * 解密
     *
     * @param content 待解密内容
     * @param aesKey  密码
     * @return
     */
    public static String decrypt(String content, String aesKey) {
        if (StringUtils.isBlank(content)) {
            return null;
        }
        //判断秘钥是否为16if (StringUtils.isNotBlank(aesKey) && aesKey.length() == 16) {
            try {
                //对密码进行编码
                byte[] bytes = aesKey.getBytes(ENCODING);
                //设置解密算法,生成秘钥
                SecretKeySpec skeySpec = new SecretKeySpec(bytes, AES_ALGORITHM);
                // "算法/模式/补码方式"
                Cipher cipher = Cipher.getInstance(CIPHER_PADDING);
                //选择解密
                cipher.init(Cipher.DECRYPT_MODE, skeySpec);

                //先进行Base64解码
                Base64.Decoder decoder = Base64.getDecoder();
                byte[] decodeBase64 = decoder.decode(content);

                //根据待解密内容进行解密
                byte[] decrypted = cipher.doFinal(decodeBase64);
                //将字节数组转成字符串
                return new String(decrypted, ENCODING);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }

        } else {
            return "secret key length should be i6";
        }
    }


    public static void main(String[] args) {
        // AES支持三种长度的密钥:128位、192位、256位。
        // 代码中这种就是128位的加密密钥,16字节 * 8/字节 = 128位。
        String random = "12345678";
        System.out.println("密钥key:" + random);


        String aes = "{\"token\":\"f08d023a-4739-4dbc-898f-161968681281\"}";
        System.out.println("---------解密---------");
        String decrypt = decrypt(aesResult, random);
        System.out.println("aes解密结果:" + decrypt);
    }
}

在这里插入图片描述
项目链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/917879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开发】tips:视频汇聚/视频云存储/视频监控管理平台EasyCVR如何提升网络稳定

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

数据结构(5)

堆 堆可以看作一颗完全二叉树的数组对象。 特性&#xff1a; 1.堆是完全二叉树&#xff0c;除了树最后一层不需要满&#xff0c;其余层次都需要满&#xff0c;如果最后一层不是满的&#xff0c;那么要求左满右不满 2.通常使用数组实现&#xff0c;将二叉树结点依次放入数组中…

二、数学建模之整数规划篇

1.定义 2.例题 3.使用软件及解题 一、定义 1.整数规划&#xff08;Integer Programming&#xff0c;简称IP&#xff09;&#xff1a;是一种数学优化问题&#xff0c;它是线性规划&#xff08;Linear Programming&#xff0c;简称LP&#xff09;的一个扩展形式。在线性规划中&…

渗透测试和红队技术解析:分析渗透测试方法、工具和技巧,深入了解红队行动背后的战术和策略

章节一&#xff1a;引言 在当今数字化世界中&#xff0c;信息安全已经成为各个组织和企业的头等大事。为了确保其信息系统的安全性&#xff0c;渗透测试和红队行动变得愈发重要。本文将带您深入探讨渗透测试的方法、工具和技巧&#xff0c;并剖析红队行动的战术和策略。 章节…

【前端实习生备战秋招】—前端性能优化篇,建议收藏

【前端实习生备战秋招】—前端性能优化篇&#xff0c;建议收藏 文章目录 【前端实习生备战秋招】—前端性能优化篇&#xff0c;建议收藏一、CDN1. CDN的概念2. CDN的作用3. CDN的原理4. CDN的使用场景 二、懒加载1. 懒加载的概念2. 懒加载的特点3. 懒加载的实现原理4. 懒加载与…

分类行为的排斥作用

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有2个1&#xff0c;B中有1个1&#xff0c;且不重合&#xff0c;排列组合&#xff0c;统计迭代次数并排序。 其中有6组数据 构造平均列A 构造平均…

使用扩展函数方式,在Winform界面中快捷的绑定树形列表TreeList控件和

在一些字典绑定中&#xff0c;往往为了方便展示详细数据&#xff0c;需要把一些结构树展现在树列表TreeList控件中或者下拉列表的树形控件TreeListLookUpEdit控件中&#xff0c;为了快速的处理数据的绑定操作&#xff0c;比较每次使用涉及太多细节的操作&#xff0c;我们可以把…

java八股文面试[数据结构]——ArrayList和LinkedList区别

ArrayList和LinkedList的异同 二者的线程都不安全&#xff0c;相对线程安全的Vector,执行效率高。此外&#xff0c;ArrayList时实现了基于动态数组的数据结构&#xff0c;LinkedList基于链表的数据结构&#xff0c;对于随机访问get和set&#xff0c;ArrayList觉得优于LinkedLis…

异地机房容灾备份方案,异地容灾备份方式有哪些

任何时候&#xff0c;我们都不能避免自然灾害、硬件问题、黑客攻击等事故。这些事情可能会导致数据中心的偏瘫&#xff0c;甚至影响整个业务的正常使用。因此&#xff0c; 机房容灾备份计划已成为确保业务连续性的关键对策。 一、异地机房容灾备份方案是什么&#xff1f; 国外…

Shell的一些基础

1.查看某个路径下的目录和文件列表 ls -lR 路径 2.统计某个路径下的文件数量&#xff1a; ls -lR lntest/ | grep “^-” | wc -l 3.找出进程里占用CPU或者内存最高的进程 首先 ps aux 列出来的&#xff0c;cpu是第三列&#xff0c;内存是第四列&#xff0c;所以找出占用cpu最…

word里的文字限制编辑,不知道密码怎么办?

Word文档可以设置加密来保护文件禁止修改&#xff0c;但是在word文档中设置限制编辑功能时对它的作用是否有详细的了解呢&#xff1f;今天为大家介绍word限制编辑功能的作用以及忘记了限制编辑密码该如何解决。 设置限制大家应该都清楚&#xff0c;就是点击工具栏中的审阅 – …

视频集中存储/直播点播平台EasyDSS内核无法启动是什么原因?

视频推拉流EasyDSS视频直播点播平台&#xff0c;集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 有用户反馈&#xff0c;下载了视频直播点播平台EasyDSS最新版本&a…

金属氧化物变阻器美国市场估算为13亿美元,中国则将以年复合成长率13.5%增长

金属氧化物变阻器是一种电子元件&#xff0c;它的作用是限制电流过大时对电路的损害。MOV的主要构成材料是金属氧化物&#xff0c;例如氧化锌&#xff08;ZnO&#xff09;。当电路中的电压超过预定值时&#xff0c;MOV会迅速变得导电&#xff0c;从而限制电流的继续增加。这个特…

问题描述:在Windows下没有预装ImageMagick工具

问题描述:在Windows下没有预装ImageMagick工具 # WInR输入cmd回车进入命令行,执行以下命令查看版本信息 magick --version没有预装ImageMagick工具 解决方案&#xff1a;下载安装ImageMagick 官网下载:ImageMagick-7.1.1-15-Q16-x64-dll.exe 下载之后&#xff0c;一路下一步…

系统架构设计师-计算机系统基础知识(1)

目录 一、计算机系统概述 1、冯诺依曼计算结构​编辑 二、存储系统 三、操作系统概述 1、特殊的操作系统 四、进程管理 1、进程与线程的概念 2、进程的同步与互斥 3、PV操作 4、死锁与银行家算法 一、计算机系统概述 1、冯诺依曼计算结构 二、存储系统 从上到下依次&#…

【C修炼计划】卷壹 · 初识C语言

文章目录 卷壹 初识C语言一 C语言的起源二 C语言的特性三 C语言的应用范围四 C语言程序结构五 C语言书写规范六 C语言编译器安装附 参考资料 卷壹 初识C语言 一 C语言的起源 C语言的前生是B语言&#xff08;BCPL&#xff0c;一种早期的高级语言&#xff09;。下图描…

快手正面临着严重的监管阻力,股价上涨潜力将遭受严重限制

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 积极的盈利预警 上月底&#xff0c;快手&#xff08;01024&#xff09;发布公告称&#xff0c;该公司预计2023年上半年的净收入将达到5.6亿元人民币。 考虑到快手报告的2023年第一季度归属于股东的净亏损为- 8.73亿元人民币…

顶尖测试学思维?跟Google大佬学顶级测试思维!

谷歌员工怎么写 python 代码&#xff1f; 谷歌内部的 python 代码规范 熟悉 python 一般都会努力遵循 pep8 规范&#xff0c;也会有一些公司制定内部的代码规范。大公司制定规范的目的不是说你一定要怎样去使用编程语言&#xff0c;而是让大家遵守同一套规则&#xff0c;节省…

选择适合企业的文件传输方式:SFTP与SCP的比较及应用场景分析

企业的发展和业务拓展必不可少地依赖于文件传输。为确保数据安全且传输高效&#xff0c;选择适宜的文件传输方式至关重要。在众多选择中&#xff0c;基于SSH协议的SFTP和SCP备受青睐。 以下将详细介绍SFTP和SCP&#xff0c;分析它们适用的企业文件传输场景。 一、SFTP与SCP的差…

Wireshark数据抓包分析之互联网协议(IP协议)

一、实验目的&#xff1a; 通过wireshark抓包分析IP协议的具体内容 二、预备知识&#xff1a; 1.IP地址存在的意义&#xff0c;就是为了弥补mac地址的不足&#xff0c;用于区分不同的网络 2.还有一些ip协议、ip数据包这些东西 三、网络拓扑 四、实验过程&#xff1a; part1&…