为了在不同体系结构的网络和计算机之间交互加密消息,加密通信各方需要对传送的消息使用标准的方式进行编码。
CryptAPI支持PKCS #7标准加密消息语法格式消息。PKCS #7标准采用了CCITT X.208定义的ASN.1 BER编码规则,定义了加密消息相关的类型和编码方式。
使用CryptAPI进行加密消息编码的基本步骤如下:
  1. 初始化消息类型相关的数据结构。
  2. 调用CryptMsgOpenToEncode,获得消息句柄。
  3. 调用CryptMsgUpdate填入数据,此函数可以调用多次,直到此消息的所有数据被填写完毕。最后一次调用应将 fFinal 参数设置为TRUE。
  4. 调用CryptMsgGetParam获取需要的编码结果。
  5. 调用CryptMsgClose关闭消息。
解码的基本步骤如下:
  1. 使用CryptMsgCalculateEncodedLength确定消息解码所需要的使用的缓冲区长度。
  2. 调用CryptMsgOpenToDecode,获得消息句柄。
  3. 调用CryptMsgUpdate填入数据,此函数可以调用多次,直到此消息的所有数据被填写完毕。
  4. 调用CryptMsgControl进行解密或验证签名之类的附加处理。
  5. 调用CryptMsgGetParam获取需要的解码结果。
  6. 调用CryptMsgClose关闭消息。

转载于:https://blog.51cto.com/esafe/1122718

使用CrpytAPI编码和解码PKCS#7消息相关推荐

  1. java usc2短信编码_手机短信PDU编码与解码

    编码代码: / ///文 件:PDUdecoding.cs ///程 序 员:klude ///编制日期:2007-11-04 ///概 要:针对国内短信编码(USC2) ///组成结构:包含四个函数 ...

  2. Java 8中的Base64编码和解码

    转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...

  3. 2021SC@SDUSC PALISADE开源库(二)CKKS讲解系列(一)普通编码和解码

    2021SC@SDUSC 目录 介绍 CKKS编码 普通编码 例子 相关代码执行(重要) 编码器和解码器的实现过程: 具体分析[假设输入的向量的(1,2,3,4)] 测试过程 同态操作(编码和解码) ...

  4. Web应用中浏览器与服务端的编码和解码

    [1]基本概念 有信息交换就会产生编码.传输.解码三个过程.编码是信息从一种形式转变成另一种形式的过程,正如人类的语言通过声带编码,转换成声波.解码是编码的逆函数,耳膜接收声波,通过脑神经解码成人类文 ...

  5. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  6. 二叉树:二叉搜索树的编码和解码

    二叉搜索树的编码和解码描述: 编码:即将一个二叉搜索树编码,节点数值转换为字符串 解码:即将一个字符串解码,数值转换为对应的二叉搜索树的节点 过程导图如下: 针对性编码实现如下: /*数字转字符串*/ ...

  7. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  8. php base64解码,PHP Base64 中英文编码 JavaScript 解码

    最新PHP Base64 中英文编码 JavaScript 解码 以下是三零网为大家整理的最新PHP Base64 中英文编码 JavaScript 解码的文章,希望大家能够喜欢! function ...

  9. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

最新文章

  1. awk读取txt生成mysql插入语句
  2. python绘制随机数直方图-python plotly绘制直方图实例详解
  3. session_onend,你到底什么时候才能激发?
  4. 在C语言中,double、long、unsigned、int、char类型数据所占字节数
  5. CodeForces 1204 (#581 div 2)
  6. 前端学习(2934):上午回顾
  7. BAT老程序员分享:Linux C/C++ 开发程序员的黄金方向和学习路线!
  8. 人间不值得?250000条数据分析李诞是不是被骂火的
  9. 苹果发布新版iOS12.3:高通专利功能回归
  10. cmd命令java出错_Java基础知识_JavaSE_02
  11. HDU2044 一只小蜜蜂...【递推】
  12. 菜鸟教程Python教程100例(一)(持续更新)
  13. 反编译工具Depends---dll和exe反编译工具
  14. hdu 2079 选课时间(题目已修改,注意读题)
  15. 一首《轨迹》,再一曲《搁浅》,满满的的回忆
  16. 『最小表示法 Necklace』
  17. Exchange 2013 配置MAPI OVER HTTP
  18. react项目中解决IE浏览器下报Promise未定义的错误
  19. 11 Tornado - 使用模板
  20. x3650服务器硬盘指示灯,IBM X3500服务器故障|前面板指示灯解释

热门文章

  1. 再见“小明爬楼梯”问题
  2. Qt中的QByteArray和自定义结构体之间的相互转换
  3. c++仿函数 functor
  4. libevent网络编程例子(1)
  5. linux网络编程(二)TCP通讯状态
  6. web开发者工具,118页Vue面试题总结,涨姿势!
  7. 系统盘点Android开发者必须掌握的知识点,含小米、腾讯、阿里
  8. shell之引号嵌套引号大全
  9. JS前台页面验证文本框非空
  10. 序列化框架MJExtension详解 + iOS ORM框架