首页 > 其他分享 >实验二 电子传输系统安全-进展1

实验二 电子传输系统安全-进展1

时间:2024-05-19 14:51:39浏览次数:24  
标签:hash 系统安全 gmssl 传输 实验 org import byte srcData

实验二 电子传输系统安全-进展1

上周任务

  • 找到上学期电子公文传输系统并重新调试通过
  • 学习加密相关知识,即gmssl
  • 部署安装gmssl
  • 使用gmssl测试证书
  • 调试运行加装gmssl后的系统

上周任务完成情况

学号姓名 任务 完成情况
宁心宇 找到上学期电子公文传输系统并重新调试通过 100%
周擎睿 部署安装gmssl 100%
李文婧 学习加密相关知识,即gmssl 100%
林道坤 使用gmssl测试证书 100%
张树杰 调试运行加装gmssl后的系统 100%

具体任务情况

导入依赖

<dependency>
	<groupId>org.bouncycastle</groupId>
	<artifactId>bcprov-jdk15on</artifactId>
	<version>1.57</version>
</dependency>
<dependency>
	<groupId>org.bouncycastle</groupId>
	<artifactId>bcprov-ext-jdk15on</artifactId>
	<version>1.57</version>
</dependency>

工具类

import org.bouncycastle.crypto.digests.SM3Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;

import java.io.UnsupportedEncodingException;
import java.security.Security;
import java.util.Arrays;

/**
 * SM3 工具类
 */
public class Sm3Util {

    /**
     * 编码格式
     */
    private static final String ENCODING = "UTF-8";

    static{
        Security.addProvider(new BouncyCastleProvider());
    }

    /**
     *
     * @param paramStr 要sm3加密的内容
     * @return sm3加密后密文
     */
    public static String encrypt(String paramStr){
        String resultHexString = "";
        try {
            byte[] srcData = paramStr.getBytes(ENCODING);
            byte[] hash = hash(srcData);
            resultHexString = ByteUtils.toHexString(hash);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return resultHexString;
    }

    public static byte[] hash(byte[] srcData){
        SM3Digest sm3Digest = new SM3Digest();
        sm3Digest.update(srcData,0,srcData.length);
        byte[] bytes = new byte[sm3Digest.getDigestSize()];
        sm3Digest.doFinal(bytes,0);
        return bytes;
    }

    /**
     *
     * @param str 明文
     * @param hexString 密文
     * @return 明文密文对比结果
     */
    public static boolean verify(String str,String hexString){
        boolean flag = false;
        try {
            byte[] srcData = str.getBytes(ENCODING);
            byte[] sm3Hash = ByteUtils.fromHexString(hexString);
            byte[] hash = hash(srcData);
            if (Arrays.equals(hash,sm3Hash)){
                flag = true;
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return flag;
    }

}

下载gmssl证书和密码套件等

下载链接:GMSSL - 国密SSL实验室

操作环境要求

  • Tomcat9.0

  • JRE1.8

  • eclipse:2023

1.JRE的加密策略需要切换到unlimited模式

首先找到eclipse下jre的路径:

然后在jre/lib/security下找到java.security,用记事本打开,将crypto.policy=unlimited前的‘#’去掉,切换到unlimited模式
如此,便可以进行加密策略的切换了

本周计划

推进登录口令密态存储和身份认证的工作
目前的文件虽然写了密级,但并没有加密,需要找一种算法去加密那些带密级的文件
学习访问控制相关的知识,设计一套方案,使用户只能按权限查看对应密级的文件

标签:hash,系统安全,gmssl,传输,实验,org,import,byte,srcData
From: https://www.cnblogs.com/xianxingxiangguan/p/18200336

相关文章

  • 实验4
    task1_1.c点击查看代码#include<stdio.h>#defineN4voidtest1(){inta[N]={1,9,8,4};inti;printf("sizeof(a)=%d\n",sizeof(a));for(i=0;i<N;++i)printf("%p:%d\n",......
  • 实验二 电子传输系统安全-进展1
    实验二电子传输系统安全-进展1上周任务完成情况(代码链接,所写文档等)本周计划上周任务完成情况(代码链接,所写文档等)将上学期电子公文传输系统重新调试通过部署bouncycastle学习bouncycastle将jar包添加到依赖项在pom.xml文件中引入BouncyCastle的包<dependency>......
  • 实验二 电子传输系统安全-进展1
    上周任务完成情况(代码链接,所写文档等将电子公文传输系统重新调试通过,并运行小组成员每个人读完《Core.Software.Security.Security.at.the.Source.CN.软件安全.从源头开始》和《The.Security.Development.Lifecycle.CN.软件安全开发生命周期》,并写好相应的读书笔记熟悉运行之......
  • Serv-U MFT Server(Managed File Transfer Server)是一款专为企业级用户设计的文件传输
    Serv-UMFTServer(ManagedFileTransferServer)是一款专为企业级用户设计的文件传输解决方案,它是基于著名的Serv-UFTPServer的增强版,专注于提供更加安全、可控和高效的文件传输服务。MFT(ManagedFileTransfer)即管理型文件传输,与传统的FTP相比,它更加强调安全性、合规性和可......
  • 电子公文传输系统安全-进展一
    上周任务完成情况每人撰写并提交一份读书笔记小组撰写并提交一份加固计划书、一份安全性设计方案小组撰写并提交一份系统安全设计报告小组讨论原公文传输系统的问题不足和改进方向小组讨论新公文传输系统的修改方案和预期效果每人自行学习国密标准、算法知识和设计方法原......
  • 实验四_C语言数组应用
    #include<stdio.h>#defineN4voidtest1(){inta[N]={1,9,8,4};inti;//输出数组a占用的内存字节数printf("sizeof(a)=%d\n",sizeof(a));//输出int类型数组a中每个元素的地址、值for(i=0;i<N;++i)pr......
  • Linux系统安全配置基线
    https://www.cnblogs.com/sun-sunshine123/p/7119472.html一:共享账号检查配置名称:用户账号分配检查,避免共享账号存在配置要求:1、系统需按照实际用户分配账号;2、避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享。操作指南:参考配置操作:cat/etc/pas......
  • P8684 [蓝桥杯 2019 省 B] 灵能传输 题解
    题目传送门本题涉及到了\(3\)种算法:前缀和,排序以及贪心。(1)前缀和本题实际上要求通过某种灵能传输可以使得该序列的最大值最小。而由前缀和可知,当某一个前缀和序列保持有序(或前缀和序列表示的函数单调)时,其\(s[i]-s[i-1]\)的最大值可以达到最小。通过对几个样例的观察......
  • Operating System(nanjin) Pro-0 实验须知
    pstree阅读材料POSIX对命令行参数有一定的约定https://jyywiki.cn/OS/2024/labs/M1.mdpid/proc的介绍/proc/cpuinfo:包含有关CPU的信息,如型号、速度等。/proc/meminfo:提供有关系统内存使用情况的信息。/proc/version:显示Linux内核的版本。/proc/uptime:显示系统启动......
  • 北航研究生计算机网络实验期末复习
    基本命令看路由表#交换机MAC地址表[H3c]displaymac-address#查看arp缓存C:\arp-a#清空arp缓存(可能需要管理员权限打开cmd)C:\arp-d数据链路层PPP(PointtoPointProtocol)LCP(LinkControlProtocol):[R1-Serial1/0]link-protocolppp<R1>debuggin......