首页 > 其他分享 >实验一

实验一

时间:2024-04-10 21:25:01浏览次数:23  
标签:11 PKCS 加密 标准 密码 API 实验

微软的Crypto API

简介

微软的Crypto API是一个强大的加密工具集,它为Windows应用程序提供了一套加密服务。这个API允许开发者在他们的应用程序中实现各种加密功能,比如数据加密、解密、密钥生成和数字签名等。

官网介绍

https://learn.microsoft.com/zh-cn/azure/rtos/netx/netx-crypto/chapter4
https://stackoverflow.com/questions/4796590/windows-c-c-crypto-api-examples-and-tips

RAS公司的PKCS#11标准

简介

PKCS#11(公钥加密标准#11)是由RSA Laboratories(RAS公司的前身)与一个国际小组共同开发的,它定义了一组平台无关的API,用于访问智能卡和其他加密设备。这个标准提供了一种方式,让应用程序可以与不同供应商的加密硬件进行交互,而无需关心硬件的具体实现细节。PKCS#11标准通常用于实现硬件安全模块(HSM)、智能卡和其他加密令牌。它定义了一个抽象的、独立于语言的接口,允许应用程序通过这个接口来访问加密设备的功能,如密钥管理、加密、解密、签名和验证等。

系统介绍

http://www.doc88.com/p-9117249687786.html
https://blog.csdn.net/shyrainxy/article/details/119959949

中国商用密码标准:GMT 0016-2012

简介

GMT 0016-2012和GMT 0018-2012是中国商用密码标准的两部分,分别涉及不同的密码技术应用。
GMT 0016-2012 智能密码钥匙密码应用接口规范:这个标准主要关注于智能密码钥匙的密码应用接口。它规定了基于PKI密码体制的智能密码钥匙的密码应用接口,包括函数、数据类型、参数的定义,以及设备的安全要求。这个标准适用于智能密码钥匙产品的研制、使用和检测。
GMT 0018-2012 密码设备应用接口规范:此标准规定了公钥密码基础设施应用技术体系下服务类密码设备的应用接口标准。它适用于服务类密码设备的研制、使用,以及基于该类密码设备的应用开发,也可用于指导该类密码设备的检测。

官网介绍

https://www.doc88.com/p-1166161064324.html
http://www.gmbz.org.cn/main/viewfile/20180110020423162671.html
http://www.gmbz.org.cn/main/viewfile/20180110020642562680.html

以上API在编程中的使用方式

使用方式和应用场景有所不同。
微软的Crypto API: 微软的Crypto API是一组提供在Windows操作系统中进行加密和解密操作的函数。在C#等.NET语言中,可以通过System.Security.Cryptography命名空间中的类来使用这些API。例如,使用AesCryptoServiceProvider类可以进行AES加密和解密。在C/C++中,可以通过Windows的bcrypt库或者advapi32.dll中的函数来使用Crypto API。
RAS公司的PKCS#11标准: PKCS#11标准定义了一组API,用于访问智能卡、硬件安全模块(HSM)和其他加密设备。在编程中,开发者通常需要包含PKCS#11的库,并使用这些库提供的函数来与加密设备进行交互。PKCS#11标准的应用非常广泛,几乎支持所有主要编程语言,包括C/C++、Java、C#等。使用PKCS#11,开发者可以管理密钥、执行加密操作、生成数字签名等。
中国的GMT 0016-2012和GMT 0018-2012标准: 这两个标准是中国的商用密码标准,它们定义了智能密码钥匙和服务类密码设备的接口规范。在编程中,开发者需要根据这些标准来实现与密码设备的交互。这通常涉及到使用特定的库或API,这些库或API实现了标准中定义的接口。例如,开发者可能需要使用特定的函数来管理密钥、执行加密操作或进行数字签名。

函数

微软的Crypto API:
·密钥管理:CryptAcquireContext, CryptGenKey, CryptDestroyKey等。
·数据加密/解密:CryptEncrypt, CryptDecrypt。
·数字签名/验证:CryptSignHash, CryptVerifySignature。
·哈希函数:CryptCreateHash, CryptHashData, CryptGetHashParam。
·随机数生成:CryptGenRandom。
RAS公司的PKCS#11标准:
·会话管理:C_OpenSession, C_CloseSession, C_Login, C_Logout。
·密钥管理:C_GenerateKey, C_CopyObject, C_DestroyObject, C_FindObjects等。
·数据加密/解密:C_Encrypt, C_Decrypt。
·数字签名/验证:C_Sign, C_Verify。
·哈希函数:C_Digest。
·随机数生成:C_GenerateRandom。
中国的GMT 0016-2012和GMT 0018-2012标准:
·密钥管理:包括密钥生成、导入、导出、销毁等操作。
·数据加密/解密:支持多种加密算法的加密和解密操作。
·数字签名/验证:提供签名生成和验证功能。
·哈希函数:支持多种哈希算法。
·设备管理:包括设备的初始化、配置、信息查询等。

异同点:
·相同点:这些API都提供了基本的加密功能,如数据加密/解密、数字签名/验证、哈希函数、密钥管理等。
·不同点:
微软的Crypto API:它是Windows操作系统的原生API,主要用于Windows平台的应用程序。
PKCS#11:这是一个跨平台的、与硬件无关的标准,主要用于与各种加密硬件(如智能卡、HSM)交互。
中国的商用密码标准:这些标准是专门为中国市场设计的,可能包含一些特定的加密算法和要求,适用于中国的商用密码产品。

调用接口

`public class DataTest {

public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
//httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

public static void main(String[] args) {
/**
* @param urlAll
* :请求接口
* @param httpArg
* :参数
* @return 返回结果
*/
String httpUrl = "http://api.tianapi.com/txapi/ncovcity/index?key=d557d60eeebe9fa695424a6e3930a8fd";
String httpArg="";
System.out.println(request(httpUrl,httpArg));
}
}
`

image
image
image
image
image
image
image

标签:11,PKCS,加密,标准,密码,API,实验
From: https://www.cnblogs.com/ajr-bky/p/18126094

相关文章

  • 实验一-密码引擎-3-加密API研究
    任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客......
  • 实验2
    task1.c点击查看代码#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){ intnumber; inti; srand(time(0)); for(i=0;i<N;++i){ number=rand()%65+1; printf("2023831%04d\n",nu......
  • 20211208葛洺君实验一—3
    任务详情0.查找各种标准的原始文档,研究学习(至少包含CryptoAPI,PKCS#11,GMT0016-2012,GMT0018-2012)1.总结这些API在编程中的使用方式2.列出这些API包含的函数,进行分类,并总结它们的异同3.以龙脉GM3000Key为例,写出调用不同接口的代码(CryptoAPI,PKCS#11,SKF接口),4.把运行截图加......
  • 计算机网络实验九:静态路由与默认路由配置
    目录实验目的实验环境配置实验原理实验步骤及结果实验分析结论实验目的理解静态路由的含义。掌握路由器静态路由的配置方法。理解默认路由的含义。掌握默认路由的配置方法。实验环境配置装有CiscoPacketTracer的Windows计算机。三个路由器(路由器R0、路由器R1、......
  • LCEL的具体实验
    一、基本chainfromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_community.llms.chatglm3importChatGLM3importosos.environ["LANGCHAIN_TRACING_V2"]="true"os.e......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 20211318 实验一-密码引擎-3-加密API研究
    任务详情:密码引擎API的主要标准和规范包括:微软的CryptoAPIRAS公司的PKCS#11标准中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接......
  • 实验一-密码引擎-3-加密API研究
    实验详情:密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客......
  • 实验一-密码引擎-3-加密API研究
    ##一、任务概览密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代......
  • 实验一-密码引擎-3-加密API研究
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录一、任务详情二、查找各种标准的原始文档,研究学习1.CryptoAPICryptoAPI学习链接:CryptoAPI由五个主要功能区域组成:2.PKCS#113.GMT0016-20124.GMT0018-2012三、总结这些API在编程中的使用方式四、列出这些AP......