自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悦途的专栏

记录点滴,积累人生

  • 博客(28)
  • 资源 (6)
  • 收藏
  • 关注

原创 PKCS1 OAEP PADDING的理解

OAEP填充过程:需要准备:Hash 函数:输出长度为hLen字节的摘要函数; MGF :掩码产生函数; 随机数生成函数(用于生成seed,seed长度和hLen相同 RSA密钥对模长k bytes 明文最大长度mLen小于等于k – 2hLen – 2(2hLen=seedLen+lHash, 2: 00 and 01) lHash为L, L为可选标识,如果L为空时,取空值HASH;填充生成过程:L长度判断,不能超出限制(比如261 – 1 octets for SHA-1);

2021-07-12 22:55:27 280

原创 PKCS1 PSS PADDING的理解

PSS填充过程:需要准备:Hash 函数:输出长度为hLen字节的摘要函数; MGF :掩码产生函数; 随机数生成函数(可选,用于生成salt,salt长度用sLen表示,由密钥模长和摘要算法结果长度决定,sLen最大长度:sLen = nLen-hLen-2,(2代表最后的0xbc和padding2的0x01); emBits 至少8hLen + 8sLen + 9(9的含义0xBC 8位,另外一位是至少还应该包含一个字节)参数:emLen EM 的字节长度 = emBits

2021-07-09 23:57:37 505

原创 保留格式的加密方法(Methods for Format-Preserving Encryption)

1. FPE (Format-preserving encryption)简介 FPE (Format-preserving encryption)是一种保留格式的数据加密方法,区别与传统加密方法,该加密方法的加密结果保留原数据格式,例如,美国的社保号(Society Security Number,SSN)由九位数字组成,经过加密结果还是九尾数字,保留 原有格式,但数据已不是原有的顺序。另外FPE可以对敏感信息进行加密,同时保留原有数据的格式,例如,数据库应用程序可能不支持更改数据字段的长...

2021-03-22 23:40:31 691 1

原创 CMAC计算三个关键步骤

CMAC计算包含三个关键步骤:1. 子密钥K1和K2的扩展过程:其中,即128位时Rb b=128,共16字节,前15字节为0x00,最后一个字节为0x87;64位时Rb b=64,共8字节,前7个字节为0x00,最后一个字节为0x1B;2. CMAC计算过程:3. 整体计算流:整体计算流程分整数倍分组计算和非整数倍分组计算;1. 整数倍分组计算最后需要异或K1后再加密;2. 非整数倍分组需要先填充,填充规则见步骤4,填充后再使用K2异或,之后再加密;3.

2021-03-16 23:23:49 376

原创 SM2密钥协商实现过程及关键过程推导

1. 根据国密规范《GM-T 0003.3-2012SM2椭圆曲线公钥密码算法第3部分:密钥交换协议》定义SM2算法密钥协商过程如下图所示:2. SM2密钥协商的关键在与发起方计算点U和响应方计算点V,实际上点U和点V是同一个点,推导过程如下:3. 由上图可推导出V和U是同一个点,按照步骤1中的密钥协商流程,计算出协商密钥和校验值。...

2021-03-09 00:19:14 778

原创 SM2加密解密实现过程及关键过程推导

1. 根据国密规范《GM-T 0003.4-2012SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》定义SM2算法加密过程如下图:2. 根据国密规范《GM-T 0003.4-2012SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》定义SM2算法解密过程如下图:3.加密解密原理推导:...

2021-03-08 21:54:52 510

原创 SM2签名验签实现过程及关键过程推导

1. 根据国密规范《GB/T 32918.2-2016》定义SM2算法签名过程如下图:2. 根据国密规范《GB/T 32918.2-2016》定义SM2算法验证签名过程如下图:3.签名验签原理推导:

2021-02-22 23:45:42 490

原创 对称加密模式GCM

以下内容来自《NIST Special Publication 800-38D November, 2007》- Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC。AES Galois/Counter Mode1. 加密步骤:2. 解密步骤3. G...

2020-03-09 00:28:15 708

原创 AES CCM模式理解

AES CCM模式理解涉及概念AES CCM加密模式使用CBC_MAC和CTR加密模式实现 L长度域,涉及CBC_MAC计算和CTR计算两个计算过程理解,具体见计算过程描述。 M为输出Tag长度。 Tag为校验值内容,具体见计算过程描述。 输出内容包括CTR加密结果和Tag值。计算过程CBC_MAC计算<上图引用网络资源>构造B0、B1……、Bn,每组16个...

2020-02-17 23:41:57 5185

转载 Eclipse ASN.1 SDK和插件安装说明

ASN.1 SDK和插件安装说明这些安装说明假设您已经安装了某种类型的Eclipse。 如果你没有,Eclipse可以从http://www.eclipse.org/downloads/下载。以下步骤将安装ASN.1开发工具和可选的ASN.1编译器以及其他ASN.1工具。启动Eclipse,然后选择Help > Install New Software..., 在出现的对话框中,...

2020-02-10 12:06:57 854

原创 SCSI指令C编程

一、 Windows系统scsi协议编码1. 结构体定义:#define SPT_SENSE_LENGTH 32#define SPTWB_DATA_LENGTH 2148 //大小自定义,可能是根据硬件定义typedef struct _SCSI_PASS_THROUGH { USHORT Length; //sizeof(SCSI_PASS_THROUGH) UC...

2019-08-24 18:47:02 1320

翻译 CRC校验理解

转自:bangbang170博文在CRC算法中,将二进制数据流作为多项式的系数,然后进行的是多项式的乘除法。1. 加减法采用模2运算,即异或运算。2. 乘法即为实际乘法。3. 除法为模2减法。为了进行CRC运算,也就是这种特殊的除法运算,必须要指定个被除数,在CRC算法中,这个被除数有一个专有名称叫做“生成多项式”。最常用的几种生成多项式如下:CRC8=X8+X5+X...

2019-03-13 22:59:45 2398

原创 JNI开发总结

jni接口实现由两种方式:1. 通过javah,获取一组带签名函数,然后实现这些函数,官方推荐。2. 系统中调用System.loadLibrary函数时,如果该函数"JNI_OnLoad"存在,则调用它。JNI_OnLoad可以和JNIEnv的registerNatives函数结合起来,实现动态的函数替换    动态替换的方法,不用每个函数都写包名和类名,仅需要函数声明。    通过JN...

2018-12-28 23:44:04 391

原创 Android各版本对应的SDK版本

平台版本 SDK版本 版本名称 Android 8.0 26 Oreo Android 7.1 25 Nougat Android 7.0 24 Nougat Android 6.0 23 Marshmallow Android 5.1 22 Lollipop Android 5.0 21 Lollipop Android 4.4 19 KITKAT Andr...

2018-05-27 21:34:43 7698

原创 Android开发之gradle理解

Android开发之gradle理解

2017-12-20 10:21:17 231

原创 Windows物理磁盘扇区读写示例总结

Windows物理磁盘扇区读写、FSCTL_LOCK_VOLUME、FSCTL_UNLOCK_VOLUME、FSCTL_DISMOUNT_VOLUME

2017-12-17 22:51:35 3017 1

原创 关于VS断点无效,无法正常调试的种种问题的尝试

关于VS断点无效,无法正常调试的种种问题的尝试.使用VS2005、VS2008已有些年头,最近连续三次遇到在DEBUG模式下无法在某个指定位置设置断点、调试时直接跳过某行不执行,从此行开始执行的实际上是断点的下一行,种种问题让人挠头!无奈之下下定决心一定要解决此问题,于是有了下面的种种尝试

2017-08-09 23:18:08 10209

原创 记录windows驱动开发inf文件详解

Windows驱动程序开发相关1.    驱动的注册表位置:1.    硬件子键:HKEY_LOCATION_MACHINE\SYSTEM\ControlSet001\Enum指明硬件的HID,VID,DID等跟硬件和硬件厂商相关的信息。2.    服务子健:HKEY_LOCATION_MACHINE\SYSTEM\ControlSet001\Services它主要是跟

2017-04-08 21:29:07 7851 1

原创 IBM 3624 Customer PIN,Natural PIN,PIN Offset的相关内容

IBM 3624 Customer PIN,Natural PIN,PIN Offset的相关内容以下描述了利用IBM 3624产生k位用户pin的方法1.用PIN Verification Key (PVK)加密PAN(Primary Account Number)最右16位,产生16位十六进制字符串;2.利用Decimalisation Table = 0123456789

2015-06-16 00:08:05 3788 1

原创 字节序理解

字节序分为:网络字节序、主机字节序一、主机字节序Little-Endian,数据高位存在内存高地址,数据低位存在内存低地址Big-Endian,数据高位存在内存低地址,数据低位存在内存高地址根据CPU的不同分为:Little-Endian、Big-EndianLittle-Endian操作系统:windows、linuxBig-Endian操作系统:unix

2015-03-08 10:29:18 697

原创 static变量、static函数、变量

一、静态变量1. 静态局部变量,在一个函数体内定义,且只初始化一次,每次函数被调用时,保存的是上一次函数体结束时保留的值,静态局部变量只在定义自己的函数体内可见;2. 静态全局变量,该全局的含义是只在定义它的文件内所有函数共享,其他文件不可访问。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。二、静态函数1. 只要在静态函数中没有处理多线程共享数

2014-12-13 23:34:39 420

原创 base64那点事

分析base

2014-12-07 18:07:48 663

原创 windows下编译openssl

windows下编译openssl1.下载openssl源码,解压到一个目录:openssl\code\openssl-0.9.8i;2.下载perl 工具,我用的ActivePerl。安装完成后系统自动设置了环境变量:C:\Perl64\site\bin;C:\Perl64\bin;3.从cmd命令行进入:openssl\code\openssl-0.9.8i目录,执行:perl c

2014-05-11 19:17:24 580

原创 RSA公私钥结构

RSA公私钥结构语法:RSAPublicKey::=SEQUENCE{modulusINTEGER,--模值npublicExponentINTEGER--公开指数e}RSA私钥结构语法RSAPrivateKey::=SEQUENCE{versionVersion,--version是INTEGER类型的0modulus INTEGER,--模值npublic

2014-05-10 17:32:54 6112

原创 RSA非对称算法加密相关内容

1. RSA算法初始化的时候一般要填入密钥长度,在96-1024bits间密钥长度下限是96bits(12bytes)?因为加密1byte的明文,需要至少1+11=12bytes长度的密钥,低于下限96bits时,一个byte都加密不了,无意义。2.明文长度限制明文长度(bytes) 如果明文长度大于那个最大明文长度了,就出现了分片加密,保证每片都别超过密钥长度(byt

2013-01-20 22:34:05 1191

原创 #pragma详解

#pragma详解:#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。1. #pragma once 在头文件的最开始加入这条指令就能够保证头文件被编译一次。#pragma once用来防止某个头文件被多次include;与编译器有关系,目前一般编译器都支持该方法了。#ifndef,#define,#endif用来防止某个宏被多次定义。如果宏名称相

2013-01-17 23:31:14 402

原创 _MSC_VER 定义编译器的版本

_MSC_VER 定义编译器的版本:MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2012)MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)MSVC++ 9.0  _MSC_VER = 1500 (Visual Studio 2008)MSVC++ 8.0  _MSC_VER = 1400 (V

2013-01-17 23:26:10 1010

转载 关于CDaoDataBase的总结

CDaoDatabase不能使用于多线程。① 在主对话框中建立CDaoDatabase对象,然后把该对象传入到扫描线程中。这样做的结果是,凡是涉及到数据库操作的语句,如创建,查询等,在运行时都会出错。很明显,这是因为CDaoDatabase对象跨越了主对话框线程和扫描工作线程。② 在线程中建立CDaoDatabase对象,一切的数据库操作都在单个独立的线程中完成。这样做的结果是在线

2012-01-05 11:32:33 1250

sm4加解密工具new

zip包内含源码和可执行程序,实现了sm4 ecb、cbc模式加解密操作。

2015-02-01

Base64编码和解码

这个工具我一直在用,今天上传源码,希望能共享给有需要的同学。

2014-05-13

openssl编程中文版.chm

本网站有类似的资源,但下载下来都用不了,我找到一个,上传共享一下,希望能帮到需要的人

2014-05-12

VC实现读写文件的三种方法

1.Linux下文件句柄方式,写二进制文件时一定要用O_BINARY 2.CFile,MFC封装的形式,不区分二进制或者文本文件方式读写 3.FILE,文件指针形式,写二进制文件时一定要用wb

2014-05-10

关闭占用当前模块的五种方法

关闭占用当前模块的五种方法,根据网络资料整理,并测试完成。

2012-12-21

MFC枚举窗口

enumwindows程序,枚举窗口程序示例程序,vs2008开发。

2012-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除