openssl之EVP系列之4---EVP_Encrypt系列函数详解(一) ---根据openssl doc\crypto\EVP_EncryptInit.pod和doc\ssleay.txt cipher.doc部分翻译和自己的理解写成 (作者:DragonKing, Mail: wzhah@263.net ,发布于:http://openssl.126.com 之openssl专业论坛,版本:openssl-0.9.7) EVP_Cipher系列包含了很多函数,我将他们大概分成两部分来介绍,一部分是基本函数系列,就是本文要介绍的,另一个部分是设置函数系列,将在后面...
当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中的字符数。当然,在把整个文件调入内存之前,统计它的计数是没有意义的。但是,由于每个操作都有自己的线程,操作系统会把两个线程当作是互不相干的任务分别执行,这样就可能在没有把整个文件装入内存时统计字数。为解决此问题,你必须使两个线程同步工作。 存在一些线程同步地址的问题,Win32提供了许多线程同步的方式。在本节你将看到使用临界区、 互斥、信号量和事件来解决线程同步的问题。 1. 临界区 临界区是一种最直接的线程同步方式。所谓临界区,就是一次只能由...
临界区的互斥控制 一、前言我正在研究线程的通讯,无奈有关这方面的资料实在太少,没办法我只好去啃MSDN,但是MSDN好像说得也不太清楚。所以那我就写了这么一个例子,以望对学习多线程编程起到引玉抛砖的作用。有个易懂的例子学起来总是容易很多。近来我正在复习那几个排序算法,于是就把这些算法写到了这里来作为线程的例子。同时也对几个通用的排序算法思想作了一些说明。这个例子利用多线程使用不同的排序算法对数据进行排序,每一个线程使用不同的算法。主线程里使用快速排序QuickSort,其他四个算法分别建立四个子线程,在子线程中进行排序。因为每一个线程都要调用函数PrintResult把结果输出到显示器上...
1、床前明月光,疑是地上霜,举头望明月,我叫郭德纲。(郭德纲语录) ? ?2、刑捕头叫:“放下臭豆腐!释放人质!举手投降!这是你们唯一的机会……(《武林外传》语录) ? ?3、1644年6月6日,满族人攻入北京,为以后中国电视剧事业作出了杰出贡献。(一位上海诗人这样评价时下清剧的泛滥。) ? ?4、我长得挺漂亮,又是单身,男人不可能对我没兴趣!别人不敢穿的我敢穿,别人不敢说的我敢说,别人不敢做的我敢做!我像一颗水蜜桃,而王家卫是榨汁机。(章子怡语录) ?9、内事不决问老婆,外事不决问Google!(网友语录。何不问百度?我是先问百度,再问Google。)...
一、总以为丑女好泡 我在我过去的文章中曾经说过我有一位大学同学,因为自身条件很不好,所以他就去泡全校最丑的一位女生,结果泡了大半年也没泡到,遭到对方N次地拒绝,并被很多人嗤之以鼻。后来在我的提醒下,他把他那锲而不舍的精神用来追求一位“千人瞩目”的“系花”,结果一个月之后那女孩就怀了他的孩子,并为之成功打下了有史以来第一胎。后来他们俩毕业不久就结婚了,现在日子过得很好,两人都非常感激我。 对于这件事而言,我认为我的作用是微乎其微的,发挥决定性作用的还是泡妞主体的个人觉悟及其爱情自信心。我今天不想用“丑女多作怪”来形容一些女性,这样毕竟有些太不人道,但我今天想说的是,有些长相一般的女人对自己...
UploadFiles/2006-8/818614211.rar
Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意。作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助。 1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 解决方法: 找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时间都比系统时间靠后) 2:有时,workspace中的classview显...
Music:
² 七音音乐网(http://www.7yin.com/34pp.htm)
Move:
² 火影忍者(http://hnnn.net)
My registered useful Web address:
Openssl:
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-
关键词: openss RSA
RSA基本结构struct{int pad;long version;const RSA_METHOD *meth;ENGINE *engine;BIGNUM *n; n=p*qBIGNUM *e; 公开的加密指数,经常为65537(ox10001)BIGNUM *d; 私钥BIGNUM *p; 大素数pBIGNUM *q; 大素数qBIGNUM *dmp1; d mod (p-1)BIGNUM *dmq1; d mod (q-1)BIGNUM *iqmp; (i...
在计算机软件开发世界中,编程语言种类极多,数据在各种语言的表现形式可能有所差异,但数据本身的处理可能,或者说本质上是完全一样的;比如数据在某个算法中的运算过程是一样的。在这里,我以加密与解密来作为例子说明。
在C++下,我使用OPENSSL库生成了RSA的公私钥对与DES加密之用的会话密钥,并将这三者及加密结果写入文件以备在Java环境下使用。
在C++程序中,我使用使用公钥来加密了DES的会话密钥,然后在Java下使用私钥来解密会话密钥;在运算结果中,我未做其它方面的码制转换,即按密钥的初始格式DER编码,数学运算结果也是按DER编码来实现。
...
主要介绍Openssl中的有关大数运算函数,这个对于以后的RSA研究和实现比较有价值1.初始化函数 BIGNUM *BN_new(void); 新生成一个BIGNUM结构 void BN_free(BIGNUM *a); 释放一个BIGNUM结构,释放完后a=NULL; void BN_init(BIGNUM *); 初始化所有项均为0,一般为BN_ init(&c) void BN_clear(BIGNUM *a); 将a中所有项均赋值为0,但是内存并没有释放 void BN_clear_free(BIGNUM *a); 相当与将BN_free和BN_...
#include <stdio.h>
#include <openssl/rand.h>
#include <openssl/rc4.h>
#include <openssl/md5.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include "crypt.h"
#define DEBUG
#ifdef DEBUG
#ifdef _WIN32
#define DBG
#else
#define DBG(fmts,args...) do { fprintf(stderr,fmts...
关于ShellExecute函数的中文说明ShellExecute 函数 打开或打印一个指定的文件。文件可以是可执行文件也可以是一个文档。请查看关于ShellExecuteEx的帮助。 HINSTANCE ShellExecute( HWND hwnd, // 主窗口句柄 LPCTSTR lpOperation, // 字符串指针,指定要执行的操作 LPCTSTR lpFile, // 字符串指针,指定文件名或目录名 LPCTSTR lpParameters, // 字符串指针,指定传给可执行文件的参数 LPCTSTR lpD...
StrToHex():
unsigned long nlData = 0;
char *p;
nlData = strtoul("123456",&p,16);
IntToMem():
int main(int argc, char* argv[]){ printf("Hello World!\n"); char szBuf[1024] = {0}; memcpy(szBuf,"\x70\x40",2); memcpy(szBuf+2,"\x60\x50",2); return 0;}