程序设计
文章平均质量分 87
元子丰
这个作者很懒,什么都没留下…
展开
-
Java-JPBC-SM9(GBT 38635)实现与测试
基于JPBC的SM9实现,验证了《GBT 38635-2020 信息安全技术 SM9标识密码算法》。原创 2023-03-20 23:25:57 · 5950 阅读 · 3 评论 -
CMAC(GBT 15852.1)和OMAC(RFC4493/NIST SP800-38B)的java实现和测试
CMAC和OMAC的java实现和测试原创 2022-11-04 14:22:51 · 1997 阅读 · 0 评论 -
国密SM9算法C++实现之四:基本功能函数与KGC接口的实现
国密SM9算法C++实现之四:基本功能函数与KGC接口的实现国密SM9算法C++实现之四:基本功能函数与KGC接口的实现Base类Base.hBase.cpp主密钥对MasterKeyPair.h在有了上篇文章描述的底层支持后,可以开始实现SM9算法的各个部分了,整体总共分为2个类,KGC和SM9。 KGC类中实现主密钥对和用户私钥的生成;SM9类实...原创 2018-07-07 02:39:01 · 6919 阅读 · 7 评论 -
国密SM9算法C++实现之三:椭圆曲线接口、参数初始化
国密SM9算法C++实现之三:曲线接口、参数初始化国密SM9算法C++实现之三:曲线接口、参数初始化错误异常处理数学功能群G1倍点计算群G2倍点计算R-ate双线性对计算参数初始化Parameters.hParameters.cpp双线性对计算zzn12.hzzn12.cpp下面的几篇文章将描述一下基于miracl的SM9算法的各部分的...原创 2018-07-07 02:07:56 · 10098 阅读 · 8 评论 -
国密SM9算法C++实现之二:测试工具
国密SM9算法C++实现之二:测试工具在网上找了个基于miracle库实现的SM9算法例子,经过完善后写了在win10的vs2015中写了个测试工具,主要的界面功能截图如下。KGC密钥生成 在上一篇介绍中已经说明,SM9中的密钥包括KGC的签名主密钥对和加密主密钥对、用户的签名私钥和加密私钥。同时用户的加密私钥又分为两种,一种是用在密钥解封和解密中,另一种是用在密钥交换中,二者都是加密...原创 2018-07-04 22:10:01 · 7576 阅读 · 33 评论 -
国密SM9算法C++实现之一:算法简介
国密SM9算法C++实现之一:算法简介SM9标识密码算法是由国密局发布的一种IBE(Identity-Based Encryption)算法。IBE算法以用户的身份标识作为公钥,不依赖于数字证书。国密SM9算法标准包括5个文档,分别为: 《GMT 0044-2016 SM9标识密码算法:第1部分 总则》 《GMT 0044-2016 SM9标识密码算法:第2部分 数字签名算法》 《GMT...原创 2018-07-01 00:57:04 · 26871 阅读 · 30 评论 -
java jna-platform 创建win32窗口
使用jna-platform的win32接口,调用windows本地库,直接创建一个win32窗口原创 2018-03-02 09:35:31 · 4012 阅读 · 0 评论 -
CMake入门3——更多指令的使用
基本语法规则内部构建与外部构建例7 外部构建以及project和message指令基本语法规则从前面的几个例子中,我们使用了cmake的几条基本指令,在这里,总结一下:cmake由指令、注释和空白字符组成以#开头,到行末尾的是注释形如指令(参数1 参数2 参数3 ...)的是指令,参数间使用空格或者分号;隔开指令不区分大小写,但参数是区分大小写的cmake中可原创 2018-01-13 15:31:53 · 5064 阅读 · 1 评论 -
CMake入门2——复杂项目的构建配置
例4 多文件单目录测试例5 多文件单子目录测试例6 多目录和多级目录测试CMake入门1——CMake与VS编译器和nmake的结合使用例4 多文件单目录测试此测试项目将所有的文件都放在根目录下。 在CMakeTest目录下新建demo4目录。demo4项目文件列表如下: 其中实现了算术运算的加减乘除,每个功能分别实现在各自的文件中:int my原创 2018-01-12 14:25:05 · 5191 阅读 · 0 评论 -
国密SM9算法C++实现之五:签名验签算法
国密SM9算法C++实现之四:签名验签算法国密SM9算法C++实现之四:签名验签算法签名算法流程签名值Signature.h签名算法实现验签算法流程验签算法实现实现完KGC部分后,可以开始实现SM9算法部分。本篇描述签名验签算法的实现。签名算法流程SM9标准文档中描述的签名算法流程如下所示:其流程图为: 根据算法描述,定义接...原创 2018-07-07 03:24:08 · 8545 阅读 · 7 评论 -
国密SM9算法C++实现之六:密钥封装解封算法
国密SM9算法C++实现之五:密钥封装解封算法国密SM9算法C++实现之五:密钥封装解封算法密钥封装算法流程密钥封装值密钥封装算法实现密钥解封算法流程密钥解封算法实现密钥封装算法流程SM9标准文档中描述的密钥封装算法流程如下所示: 其流程图为: 根据算法描述,定义接口函数: /** * 密钥封装 *...原创 2018-07-07 03:41:03 · 3986 阅读 · 0 评论 -
国密SM9算法C++实现之七:加密解密算法
国密SM9算法C++实现之六:加密解密算法国密SM9算法C++实现之六:加密解密算法加密算法流程加密结果值Cipher.h加密算法实现解密算法流程解密算法实现加密算法流程SM9标准文档中描述的加密算法流程如下所示: 其流程图为: 根据算法描述,定义接口函数: /** * 加密 * * @param...原创 2018-07-07 04:01:02 · 10735 阅读 · 2 评论 -
国密SM9算法C++实现之八:密钥交换算法
国密SM9算法C++实现之七:密钥交换算法国密SM9算法C++实现之七:密钥交换算法密钥交换算法流程密钥交换结果值密钥协商初始化:keyExchange_init临时密钥对:TempKeyPairKeyAgreement .h接口描述密钥交换算法实现密钥交换算法流程SM9标准文档中描述的密钥交换算法流程如下所示: 其流程图为: 密钥交...原创 2018-07-07 04:35:13 · 6665 阅读 · 8 评论 -
国密SM9算法C++实现之九:算法功能与测试例子
国密SM9算法C++实现之八:算法功能与测试例子国密SM9算法C++实现之八:算法功能与测试例子测试例子算法功能部分实现SM9.hSM9.cpp测试例子实现完KGC密钥生成和各个算法功能部分后,可以测试一下。 使用SM9算法时只需要包含KGC.h和SM9.h两个文件,上层数据都用std::string储存,不涉及到底层数据结构。#includ...原创 2018-07-07 04:50:01 · 14198 阅读 · 17 评论 -
国密SM9算法C++实现之0:源码下载地址
SM9算法C++实现系列目录:国密SM9算法C++实现之0:源码下载地址国密SM9算法C++实现之一:算法简介国密SM9算法C++实现之二:测试工具国密SM9算法C++实现之三:椭圆曲线接口、参数初始化国密SM9算法C++实现之四:基本功能函数与KGC接口的实现国密SM9算法C++实现之五:签名验签算法国密SM9算法C++实现之六:密钥封装解封算法国...原创 2018-11-12 21:24:06 · 9896 阅读 · 23 评论 -
基于C++实现的一种通用Base编解码器(Hex(Base16)/Base32/Base64)
使用Hex(十六进制)编码、Base32编码和Base64编码可以将二进制数据编码为可视化字符串。它们的原理是一样的,都是将指定位数的二进制数据编码为特定字符空间中的一个字符。Hex:也叫作Base16编码;每4位编码为一个字符,字符空间为"0123456789abcdef"或"0123456789ABCDEF";不区分大小写,其中的字母可以编码为大写也可以编码为小写,同时解码也不区分大小写,...原创 2019-04-12 23:30:20 · 5497 阅读 · 1 评论 -
基于JPBC的SM9算法的java实现与测试
基于JPBC的SM9算法的java实现与测试原创 2019-04-18 22:14:39 · 22180 阅读 · 51 评论 -
RSA公私钥格式分析及其在Java和Openssl之间的转换方法
文章目录PKCS#1和PKCS#8X.509公钥证书ASN.1抽象语法标记DER和PEM编码OID对象标识符用openssl命令生成RSA密钥生成RSA私钥从私钥中导出公钥PKCS#1格式的RSA公钥PKCS#1格式的RSA私钥PKCS#8格式的未加密的RSA私钥X.509中RSA公钥待续PKCS#1和PKCS#8PKCS(The Public-Key Cryptography Standar...原创 2019-05-01 17:41:27 · 6325 阅读 · 3 评论 -
CMake入门1——CMake与VS编译器和nmake的结合使用
下载安装例1 使用cmake-gui与VS生成器例3 PreLoadcmake用法本文描述在Win10-64位系统中安装CMake、cmake-gui的简单使用及其与VS2015编译器的结合使用,以及cmake命令行与nmake的结合使用。下载从CMake官网上下载最新版本的安装包,本文中下载的是 cmake-3.10.1-win64-x64.msi。若不想安装,可直原创 2018-01-11 12:14:17 · 32579 阅读 · 2 评论 -
VC++ CTabCtrl控件自定义宏使用例子
为了更方便地使用VC++中的CTabCtrl控件,特在YTabCtrl.h文件中定义了几个宏,通过使用宏,可以方便地实现TAB控件的功能。原创 2017-04-06 14:26:53 · 1438 阅读 · 0 评论 -
JNI 入门学习笔记(一)
因需要原创 2014-06-26 16:27:52 · 730 阅读 · 0 评论 -
VC++ 从 CString类型的文件路径中获取文件名和扩展名
CString GetFileFullName(CString csFilePath){ int nPos = csFilePath.ReverseFind('\\'); // 文件路径,以'\'斜杠分隔的路径 CString csFileFullName; csFileFullName = csFilePath.Right(csFilePath.GetLength() - nPos -原创 2013-12-24 14:46:38 · 5230 阅读 · 2 评论 -
通过发送 EM_SETRECT 消息使 VC 编辑框 文本垂直居中
在VC中,想使编辑框多大文本垂直居中显示,除了派生新类自绘之外,也可通过向文本框发送 EM_SETRECT 消息设置。 在学习中建立了一个比较宽大的编辑框,想要弄成垂直居中的单行模式,大概要经过以下步骤: (1)设置文本框为多行模式,向其发送 EM_SETRECT 消息; (2)根据需要过虑文本框的 Ctrl+Enter 或 Enter 键消息;原创 2013-05-14 22:47:08 · 2472 阅读 · 0 评论 -
VC 组合框重绘大全 效果图(附下载链接)
重绘了些组合框,分别组合框中编辑框文本垂直居中(完全垂直居中显示)和不垂直居中(指没有直接处理垂直居中,但简单的效果也类似于垂直居中)的,下载链接为:未计算型垂直居中:计算型垂直居中:原创 2013-08-05 22:15:20 · 1590 阅读 · 0 评论 -
通过 WM_CTLCOLOR 设置VC 组合框显示属性(字体、颜色、背景)
在mfc中的对话框里使用组合框控件的时候,在没有重写CComboBox类的情况下,可以通过对话框的 WM_CLTCOLOR 消息的响应函数 OnCtlColor 设置组合框的一些显示特性,包括字体的设置、字体颜色的设置、背景颜色的设置、显示文本部分的背景颜色的设置,同时,这些设置有可以分别针对组合框中的编辑框、组合框中的列表框、组合框只读时的静态文本框(组合框的构成就是这三个部分)。参考代码:原创 2013-08-05 21:08:39 · 3622 阅读 · 1 评论 -
通过 WM_NCCALCSIZE 消息设置VC组合框或编辑框文本垂直居中
设置组合框的文本垂直居中显示,除了重绘之外,还可以直接在其父对话框中通过在 WM_NCCALCSIZE 消息的响应函数中来搞定它,首先可以通过SetItemHeight设置组合框高度,然后进行下面的操作:void CComBoxTest1Dlg::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp){ // TO原创 2013-08-05 21:32:09 · 2266 阅读 · 0 评论 -
VC 编辑框垂直居中和字体颜色设置
让单行编辑框文本垂直居中,可以有多种方法:(1)将文本框样式重设为多行文本框,然后通过消息 EM_SETRECT设置,这比较简单和快速;(2)重绘编辑框的区域,特别是顶部区域,扩大它,让区域的扩展衬托出文本的居中;(3)直接改变字体和编辑框高度,让他们相适应,也可以显示出文本框垂直居中效果;(4)完全重绘编辑框,这样的自定制是最好的了,但这个工作繁重;(5)把编辑框中可输入原创 2013-08-03 06:05:06 · 6172 阅读 · 2 评论 -
protobuf在Java中的简单使用
Protobuf在Java中的简单使用 1. 在Java中使用protobuf需要jar包,下载protobuf-Java-2.5.0.jar包文件,添加到项目中。另外需要protoc.exe来编译proto文件。2. 新建一个msg.proto文件:3. 将msg.proto文件盒protoc.exe拷贝到同一目录下,然后使用下面的命令将msg.pr原创 2014-07-02 14:12:53 · 1846 阅读 · 0 评论 -
VS2010 下编译Protocol Buffer 及使用
VS2010下编译ProtocolBuffer 及使用 1. 从http://code.google.com/p/protobuf/downloads/list上下载protobuf-2.5.0.zip。2. 解压并打开目录下的protobuf-2.5.0\vsprojecs\protobuf.sln工程,生成解决方案。在dubug或release目录下会生成几个.原创 2014-07-02 10:53:04 · 4307 阅读 · 1 评论 -
任意角度的RGB双色线性渐变算法示例
本例的能实现0~360度的任意角度线性渐变双色矩形填充。 用两种RGB颜色对矩形进行线性渐变填充时,需要合适的算法计算各点的颜色,这样才不会出现中间过渡色,或者出现渐变填充不完整。而在增加从任意角度进行渐变后,情况似乎变得更加复杂。原创 2016-07-30 00:06:35 · 9015 阅读 · 1 评论 -
删除 Win10 资源管理器中的6个文件夹
安装Win10后,当打开资源管理器(我的电脑/计算机)时,会显示6个文件夹:图片、视频、下载、音乐、桌面、文档。若要想要隐藏他们,则只需将下面的文本保存为*.reg文件,然后双击执行即可。原创 2016-06-06 01:04:52 · 7534 阅读 · 0 评论 -
CTreeCtrl checkbox 单击选择
VC中CTreeCtrl设置了checkbox之后,其选择事件需要自己写代码实现,主要是为了能达到以下目的:(1)单击一个节点后,它的所有子节点(包括子节点的子节点)的状态都要和它设为一致,即它选中则所有子节点都选中,反之亦然。(2)单击一个节点后,若当前节点设置为选中,则需要判断:若当前节点的其他所有兄弟节点都已选中,那么当前节点的父节点也要选中;否则只把当前节点设为未选中状态。……原创 2016-04-08 22:57:20 · 4204 阅读 · 2 评论 -
MFC TreeCtrl 控件(一):简单使用
本文描述了 MFC 中的树形控件 TreeCtrl 的简单使用,内容包括数据项的添加、图标设置、提示信息设置等。 新建基于对话框的应用程序,添加一个 TreeCtrl ,为其定义一个控件变量 m_userTreeCtrl,并将其属性:Has Buttons、Has Lines、Lines At Root和 Info Tip 都设为True。插入3个Icon资源,分别作为 管理员、部门、用原创 2014-06-20 10:43:59 · 3359 阅读 · 0 评论 -
MFC TreeCtrl 控件(二):显示特性设置 颜色、图标、完全展开
MFC 的 TreeCtrl 树形控件提供了设置背景色、原创 2014-06-20 15:55:58 · 7835 阅读 · 2 评论 -
MFC TabCtrl 控件简单使用
本文记录 MFC 中 TabCtrl 控件的简单使用,内容包括原创 2014-06-20 13:37:46 · 4038 阅读 · 1 评论 -
VC 中 C/C++ 增减量运算符解析
C/C++ 增减量运算符解析 ——ILLI VC中前后缀增减量运算法则:(1)优先级:前缀>算术运算 >后缀;(2)结合性:前缀左结合,后缀右结合。 C/C++的增减量运算符分为自增(++)和自减(--)两种,同时又有前缀和后缀之别,在C/C++程序中也较为常见。单一的增原创 2014-08-02 22:33:41 · 858 阅读 · 0 评论 -
EASYSIZE 文件解读
// 偶然用到,又欲知其所以然,因此便有了下面的注释,若有偶误,望自见谅// ILLI 2013-1-29//////////////////////////////////////////////////////////////////////////该文件就是一堆宏,为读懂该文件,便将源文件中的所有宏定义展开,然后进行了分析。 有两点需要注意:1. EASYSIZE 使用时原创 2013-08-02 00:04:34 · 1341 阅读 · 0 评论