用html5做网站的心得体会flash怎么制作网站

pingmian/2025/10/8 20:09:02/文章来源:
用html5做网站的心得体会,flash怎么制作网站,域名站长工具,网站全网建设 莱芜文章目录 openssl3.2 - 官方demo学习 - signature - rsa_pss_direct.c概述笔记END openssl3.2 - 官方demo学习 - signature - rsa_pss_direct.c 概述 用RSA私钥签名 d2i_PrivateKey_ex()可以从内存载入私钥数据, 得到私钥EVP_PKEY* 从私钥产生ctx, 对ctx进行签名初始化, 设置… 文章目录 openssl3.2 - 官方demo学习 - signature - rsa_pss_direct.c概述笔记END openssl3.2 - 官方demo学习 - signature - rsa_pss_direct.c 概述 用RSA私钥签名 d2i_PrivateKey_ex()可以从内存载入私钥数据, 得到私钥EVP_PKEY* 从私钥产生ctx, 对ctx进行签名初始化, 设置ctx的padding填充模式 摘要算法选用SHA256, 对ctx设置摘要算法 尝试签名, 得到签名长度, 然后进行私钥签名, 得到私钥签名buffer. 用RSA公钥验签 d2i_PublicKey()可以从内存载入公钥数据, 得到公钥EVP_PKEY* 验签时使用的摘要算法要和签名时一样. 验签初始化, 对ctx进行验签初始化, 这是ctx的padding填充模式(要和签名时一样) 进行验签 笔记 /*! \file rsa_pss_direct.c \noteopenssl3.2 - 官方demo学习 - signature - rsa_pss_direct.c用RSA私钥签名 d2i_PrivateKey_ex()可以从内存载入私钥数据, 得到私钥EVP_PKEY* 从私钥产生ctx, 对ctx进行签名初始化, 设置ctx的padding填充模式 摘要算法选用SHA256, 对ctx设置摘要算法 尝试签名, 得到签名长度, 然后进行私钥签名, 得到私钥签名buffer.用RSA公钥验签 d2i_PublicKey()可以从内存载入公钥数据, 得到公钥EVP_PKEY* 验签时使用的摘要算法要和签名时一样. 验签初始化, 对ctx进行验签初始化, 这是ctx的padding填充模式(要和签名时一样) 进行验签*//** Copyright 2022-2023 The OpenSSL Project Authors. All Rights Reserved.** Licensed under the Apache License 2.0 (the License). You may not use* this file except in compliance with the License. You can obtain a copy* in the file LICENSE in the source distribution or at* https://www.openssl.org/source/license.html*/#include stdio.h #include stdlib.h #include openssl/core_names.h #include openssl/evp.h #include openssl/rsa.h #include openssl/params.h #include openssl/err.h #include openssl/bio.h #include rsa_pss.h#include my_openSSL_lib.h/** The digest to be signed. This should be the output of a hash function.* Here we sign an all-zeroes digest for demonstration purposes.*/ static const unsigned char test_digest[32] { 0 };/* A property query used for selecting algorithm implementations. */ static const char* propq NULL;/** This function demonstrates RSA signing of a SHA-256 digest using the PSS* padding scheme. You must already have hashed the data you want to sign.* For a higher-level demonstration which does the hashing for you, see* rsa_pss_hash.c.** For more information, see RFC 8017 section 9.1. The digest passed in* (test_digest above) corresponds to the mHash value.*/ static int sign(OSSL_LIB_CTX* libctx, unsigned char** sig, size_t* sig_len) {int ret 0;EVP_PKEY* pkey NULL;EVP_PKEY_CTX* ctx NULL;EVP_MD* md NULL;const unsigned char* ppriv_key NULL;*sig NULL;/* Load DER-encoded RSA private key. */ppriv_key rsa_priv_key;pkey d2i_PrivateKey_ex(EVP_PKEY_RSA, NULL, ppriv_key,sizeof(rsa_priv_key), libctx, propq);if (pkey NULL) {fprintf(stderr, Failed to load private key\n);goto end;}/* Fetch hash algorithm we want to use. */md EVP_MD_fetch(libctx, SHA256, propq);if (md NULL) {fprintf(stderr, Failed to fetch hash algorithm\n);goto end;}/* Create signing context. */ctx EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);if (ctx NULL) {fprintf(stderr, Failed to create signing context\n);goto end;}/* Initialize context for signing and set options. */if (EVP_PKEY_sign_init(ctx) 0) {fprintf(stderr, Failed to initialize signing context\n);goto end;}if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) 0) {fprintf(stderr, Failed to configure padding\n);goto end;}if (EVP_PKEY_CTX_set_signature_md(ctx, md) 0) {fprintf(stderr, Failed to configure digest type\n);goto end;}/* Determine length of signature. */if (EVP_PKEY_sign(ctx, NULL, sig_len,test_digest, sizeof(test_digest)) 0) {fprintf(stderr, Failed to get signature length\n);goto end;}/* Allocate memory for signature. */*sig OPENSSL_malloc(*sig_len);if (*sig NULL) {fprintf(stderr, Failed to allocate memory for signature\n);goto end;}/* Generate signature. */if (EVP_PKEY_sign(ctx, *sig, sig_len,test_digest, sizeof(test_digest)) ! 1) {fprintf(stderr, Failed to sign\n);goto end;}ret 1; end:EVP_PKEY_CTX_free(ctx);EVP_PKEY_free(pkey);EVP_MD_free(md);if (ret 0)OPENSSL_free(*sig);return ret; }/** This function demonstrates verification of an RSA signature over a SHA-256* digest using the PSS signature scheme.*/ static int verify(OSSL_LIB_CTX* libctx, const unsigned char* sig, size_t sig_len) {int ret 0;const unsigned char* ppub_key NULL;EVP_PKEY* pkey NULL;EVP_PKEY_CTX* ctx NULL;EVP_MD* md NULL;/* Load DER-encoded RSA public key. */ppub_key rsa_pub_key;pkey d2i_PublicKey(EVP_PKEY_RSA, NULL, ppub_key, sizeof(rsa_pub_key));if (pkey NULL) {fprintf(stderr, Failed to load public key\n);goto end;}/* Fetch hash algorithm we want to use. */md EVP_MD_fetch(libctx, SHA256, propq);if (md NULL) {fprintf(stderr, Failed to fetch hash algorithm\n);goto end;}/* Create verification context. */ctx EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);if (ctx NULL) {fprintf(stderr, Failed to create verification context\n);goto end;}/* Initialize context for verification and set options. */if (EVP_PKEY_verify_init(ctx) 0) {fprintf(stderr, Failed to initialize verification context\n);goto end;}if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) 0) {fprintf(stderr, Failed to configure padding\n);goto end;}if (EVP_PKEY_CTX_set_signature_md(ctx, md) 0) {fprintf(stderr, Failed to configure digest type\n);goto end;}/* Verify signature. */if (EVP_PKEY_verify(ctx, sig, sig_len,test_digest, sizeof(test_digest)) 0) {fprintf(stderr, Failed to verify signature; signature may be invalid\n);goto end;}ret 1; end:EVP_PKEY_CTX_free(ctx);EVP_PKEY_free(pkey);EVP_MD_free(md);return ret; }int main(int argc, char** argv) {int ret EXIT_FAILURE;OSSL_LIB_CTX* libctx NULL;unsigned char* sig NULL;size_t sig_len 0;if (sign(libctx, sig, sig_len) 0)goto end;if (verify(libctx, sig, sig_len) 0)goto end;ret EXIT_SUCCESS; end:OPENSSL_free(sig);OSSL_LIB_CTX_free(libctx);return ret; } END

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

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

相关文章

网站域名是啥自定义页面wordpress

通过Python对接口进行自动化后需要把xml格式的报文放到LoadRunner上进行压力测试,在pyCharm控制台打印出报文后,把报文放到LoadRunner中做了格式调整后,每个字段需要添加双引号。手动给每一行的字段添加双引号太费时费力,利用UE也…

四川网站建设方案wordpress二级目录安装

在上一篇上《Unity接入SQLite (一):SQLite介绍-CSDN博客》中已经介绍了如何在Unity中接入SQLite插件,并且创建了一个db文件。如何进行数据库的读取,其中SQL命令非常重要 1.SQL支持的数据类型 SQL数据类型是用来定义数据库中存储的数据的类型&#xff0…

天津建设厅网站首页广州网络推广营销

今天分享百度提前批的 Java 后端开发面经,整体上考察的点挺多的,主要重点考察了网络i/o、网络协议、linux系统、mysql,Java 问的不多,可能是百度的后端开发的语言不是主要以 Java 为主,所以重点看面试者的计算机基础是…

网站建设东北wordpress建站和使用

3.3 使用Views创建列表 我们接着讲解Views的设置,首先做一个简单的实例。 3.3.1 添加内容类型“站内公告” 添加一个内容类型“站内公告”,属性配置如表3-1所示。 为该内容类型设置Pathauto的模式news/[node:nid],并且我们在这里将节点类型…

在线观看视频网站怎么做雅安公司做网站

栈的定义:栈是一个数据集合,我们可以吧它理解为是一个只能在一端进行插入或者删除的列表。栈的特点:先进后出 Stack() 建立一个空的栈对象push() 吧一个元素添加到栈的最顶层pop() 删除栈最顶层的元素,并返回这个元素gettop() 取栈…

网站改版设计wordpress 相册浏览器

Mybatis 分页查询 1. 直接在 sql 中使用 limit2. 使用 RowBounds3. 使用 Mybatis 提供的拦截器机制3.1 创建一个自定义拦截器类实现 Interceptor3.2 创建分页查询函数 与 sql3.3 编写拦截逻辑3.4 注册 PageInterceptor 到 Mybatis 拦截器链中3.5 测试 准备一个分页查询类 Data…

游戏源码网站免费线上营销方案案例范文

一、翔云 人工智能开放平台(车牌识别) 二、cJSON 库 三、实现代码 四、回调函数 五、人脸识别和车牌识别获取数据的区别 六、异步网络请求和同步网络请求的区别 七、解耦 一、翔云 人工智能开放平台(车牌识别) 翔云 人工智能开放…

个人网站免费域名注册wordpress每篇文章怎么加关键词

Google Analytics(谷歌分析)是由Google提供的一款网络分析服务。该服务旨在帮助网站和应用程序的所有者更好地了解其用户的行为和交互,从而优化网站或应用的性能、用户体验和营销策略。Google Analytics 提供了丰富的数据和报告,涵…

网站建设项目收费标准公司网站怎么修改

1. 主界面效果 效果关键点: 1)拖动标题栏可实现主界面拖动 2)logo图标名称及主界面背景 3)最小化及关闭 2.思路分析 1)背景图片及logo图标的设定比较简单,通过stylesheet即可实现。通过QWidget的拖动即可实…

网站开发常用颜色广州地铁站路线图

机器学习的目的是预测(包括分类和回归)。 分类是根据输入数据,判别这些数据隶属于哪个类别。 回归则是根据输入数据,计算出一个输出值。输入数据一般为一个向量,向量的各个分量也称为特征(Feature&#xff…

商业网站建设者新郑市建设局网站

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 将编号为 1 ~ 10 的 10 本书排放在书架上,要求编号相邻的书不能放在相邻的位置。 请计算一共有多少种不同的排列方案。 运行限制 public class Main…

免费无限建站h5常用的编辑平台

oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式。 thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。oci是…

青岛金融网站建设美工零基础的从哪开始学

项目采用亚马逊云服务器,需要SSH证书访问, 部署 zookeeper、kafka、redis、mysql、clichkhouse 其中zookeeper、kafka、redis采用docker部署 一、首先连接服务器(使用亚马逊云下载的pem密钥文件) [HOST]# ssh -i AWS-Host.pem centos18.25.99.1 [HOST…

建站软件免费版下载搜索引擎优化排名案例

上篇文章介绍了什么是Activity,Turn,TurnContext和BotAdapter,这篇文章我们看看这些东西是如何窜起来的,他们是如何处理用户发给bot的消息的。 我们以一个最简单的bot,echo bot为例子,所谓的echo bot就是用…

wordpress 建网站视频遵义网站网站建设

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest fixture的基本使用方法,本小节我们讲解一下fixture的作用域。 fixture前后置区分 控制fixture的前置和后置操作是通过yield关键字进行来区分的,代码在yield前面…

百度网站推广外包个人电脑 wordpress

这里的“通讯”加上了引号,是因为实际上所有的socket都有通讯的功能,只是在我们的例子中,之前那个socket只负责listen,而这个socket负责接受信息并echo回去。我们现看看这个函数:boolTcpServer::isAccept() { unsi…

宁波规划建设局网站五个推进网站建设工作

(1)熟练掌握Java开发的原理和方法 (2)熟练学习掌握SSM框架 (3)熟悉软件开发的流程 (4)了解中内外互联网中所主流的技术 (5)深层次的了解计算机学科领域的知识…

阜宁城乡建设局网站数据网站建设

一、前言 最近在前端项目Vue项目install时会出现node-sass command failed的错误,原因是NodeJS和node-sass的版本不对应导致的,本文将给出解决方案。 二、解决方案 以下是NodeJS和node-sass版本的对照关系:

医院网站建设意义网站建设一般是用哪个软件

用最清晰简洁的方法整合一个响应式相册效果 技术选型 由于我选用的主题使用了fancyBox作为图片弹出展示的框架,查看后表示很不错,能满足需要http://fancyapps.com/fancybox/3/图片加载可能会太慢,所以还需要一个图片延迟加载插件 Lazyload想使…