利用OPENSSL 实现MD5加密。
#include <stdio.h>
#include "openssl/evp.h"
#include "openssl/md5.h" #include<iostream>
using namespace std; void main()
{
bool do_encrypt(unsigned char *inBuffer,int inLen,unsigned char *outBuffer,int * pOutLen);
void print_hex(unsigned char *buf,unsigned int len); unsigned char inBuffer[];
unsigned char OutBuffer[]; char c=' ';
int i=,outLen=; cout<<"请输入需要加密的明文,以*作为结束符:";
while(c!='*')
{
c=getchar();
inBuffer[i++]=c;
}
cout<<endl;
do_encrypt(inBuffer,i-,OutBuffer,&outLen); cout<<"使用MD进行加密,生成的密文为:";
print_hex(OutBuffer,outLen);
cout<<endl<<endl; system("pause");
} bool do_encrypt(unsigned char *inBuffer,int inLen,unsigned char *outBuffer,int *pOutLen)
{
unsigned int tmplen;
EVP_MD_CTX ctx; EVP_MD_CTX_init(&ctx);//step1 EVP_DigestInit(&ctx,EVP_md5());//step2 if(!EVP_DigestUpdate(&ctx,inBuffer,inLen))//step3
{
return false;
} if(!EVP_DigestFinal(&ctx,outBuffer+*pOutLen,&tmplen))//step4
{
return false;
}
*pOutLen+=tmplen;
EVP_MD_CTX_cleanup(&ctx);
return true;
} void print_hex(unsigned char *buf,unsigned int len)
{
for(int i=;i<len;i++)
printf("%0.2x",buf[i]);
}
环境的配置在前面的文章已经讲过。
利用OPENSSL 实现MD5加密。的更多相关文章
- 利用openssl进行RSA加密解密
openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具.我们即可以利用它提供的命令台工具生成密钥.证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密. RSA是 ...
- 利用Openssl进行RSA加密签名算法
加密(签名)的过程是(M的e次方)mod n,在这里我们把消息M假定为一个数字,但实际上消息一般为字符串,所以必须有一个将字符串转化为数字的规则,并且要让这个数字的大小和n相当(也不能比 n大).这样 ...
- JS和利用openssl的object C加密得到相同的aes加密密文
这是之前接到的一个工作内容,项目原本的登录操作是获得账号和密码以后,对密码进行一遍MD5加密,然后传递账号和密文到cgi文件.在c中获取到账户以后,从数据库中获取到密码,对密码进行一次MD5的加密,然 ...
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
轉自:http://blog.chinaunix.net/uid-9543173-id-3921143.html 利用OpenSSL库对Socket传输进行安全加密(RSA+AES) 1. 利用RSA ...
- linux以下C 利用openssl的AES库加密,解密
OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是所有支持或者是部分支持. 返回值:"aes(full)" ...
- 利用Java自带的MD5加密
package test.md5; import java.security.MessageDigest; public class MD5Util { public final static Str ...
- 利用Java自带的MD5加密java.security.MessageDigest;
MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...
- OpenSSL - 利用OpenSSL自签证书和CA颁发证书
秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥. openssl genrsa -out private.key 1024/2038 ( ...
随机推荐
- c函数习记
1,user groups 篇幅 the length of an article; fgetgrent(从指定的文件来读取组格式) 相关related functions;fgetpwent hea ...
- 校园网通过路由器开WiFi
闲话少说,为了在一个宿舍内达到一个网口N人上网目的,特地写一篇关于校园网通过路由器开wifi的文章,希望能帮助同学把wifi开起来,请看正文(操作以下步骤前建议先重置路由,也就是初始化复位): 一.一 ...
- Windows下sqlmap的使用_01
环境:win8.1 64位 一.下载 首先,需下载SqlMap以及适用于Windows系统的Python.下载地址如下: 1.1.SqlMap下载地址:https://github.com/ ...
- cocos2d-x 图形绘制
转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...
- copy and Xcopy 复制文件到另一地址
1. copy不能复制文件夹下的文件,而Xcopy可以. 2. Xcopy不能连接文件,而copy可以连接文件 eg : 将A盘中的A.TXT和B.TXT文件连接起来,连接后的文件名为C.TXT ...
- 赋值容器winform 根据NAME查找控件
每日一贴,今天的内容关键字为赋值容器 foreach (Control c in this.panel1.Controls) { if (c is TextBox && c.Name ...
- DuiLib(二)——控件创建
上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_C ...
- Codeforces Gym 100418A A - A+-B java高精度
A - A+-BTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.acti ...
- delphi 01设置 字体属性
设置/获取 字体属性 名称 大小 粗体 斜体 下划线 删除线 颜色1 颜色2 uses MSHTML; //设置 //------------------------------------- ...
- java后端模拟表单提交
代码可实现文本域及非文本域的处理 请求代码: /** * 上传 * * @param urlStr * @param textMap * @param fileMap * @return */ pub ...