#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加密。的更多相关文章

  1. 利用openssl进行RSA加密解密

    openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具.我们即可以利用它提供的命令台工具生成密钥.证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密. RSA是 ...

  2. 利用Openssl进行RSA加密签名算法

    加密(签名)的过程是(M的e次方)mod n,在这里我们把消息M假定为一个数字,但实际上消息一般为字符串,所以必须有一个将字符串转化为数字的规则,并且要让这个数字的大小和n相当(也不能比 n大).这样 ...

  3. JS和利用openssl的object C加密得到相同的aes加密密文

    这是之前接到的一个工作内容,项目原本的登录操作是获得账号和密码以后,对密码进行一遍MD5加密,然后传递账号和密文到cgi文件.在c中获取到账户以后,从数据库中获取到密码,对密码进行一次MD5的加密,然 ...

  4. 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)

    轉自:http://blog.chinaunix.net/uid-9543173-id-3921143.html 利用OpenSSL库对Socket传输进行安全加密(RSA+AES) 1. 利用RSA ...

  6. linux以下C 利用openssl的AES库加密,解密

    OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是所有支持或者是部分支持. 返回值:"aes(full)" ...

  7. 利用Java自带的MD5加密

    package test.md5; import java.security.MessageDigest; public class MD5Util { public final static Str ...

  8. 利用Java自带的MD5加密java.security.MessageDigest;

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

  9. OpenSSL - 利用OpenSSL自签证书和CA颁发证书

    秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥. openssl genrsa -out private.key 1024/2038                     ( ...

随机推荐

  1. Microsoft TFS 如何显示在Windows 的上下文菜单中

    How to showing in Windows Explorer context for TFS I am not sure if this would help or you are willi ...

  2. ERROR (ClientException)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPwAAABCCAIAAABM0F+3AAAgAElEQVR4nO2d+29d13Xn7y+xyMvLty

  3. cos

    Apple过于封闭,没啥朋友,这家伙应该比较高傲,曾仅和Intel,IBM and so on..一起玩过!Google过于开放,狐朋狗友,友人泛滥,殃及ecosystem,弊端已显,祸水将至.COS ...

  4. JDBC学习笔记(3)——复习和练习

    复习和练习 复习部分 一.获取数据库连接 1)方式一 // 获取数据库连接 @Test public void testGetConnection() throws Exception { // 1. ...

  5. Spring Autowiring by Type

    In Spring, "Autowiring by Type" means, if data type of a bean is compatible with the data ...

  6. CentOS查看系统信息-CentOS查看命令

    一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...

  7. MES系统的有用存储过程

    USE [ChiefmesNEW]GO/****** Object: StoredProcedure [dbo].[st_WMS_ImportStockInBill] Script Date: 10/ ...

  8. JAVA事务的概念

    From:http://www.cnblogs.com/kristain/articles/2038397.html 一.什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数 ...

  9. Thinkphp框架 -- ajax无刷新上传图片

    用Thinkphp框架做无刷新上传图片 视图层 View <!doctype html> <html lang="en"> <head> < ...

  10. 五,整型变量的读入——scanf函数

    我们先不说变量怎么读入,我们先说说读入是什么?为什么要读入? 先来看一个例子,我现在需要计算两个整数的乘积.先看只用前面学过的内容的实现. #include<stdio.h> int ma ...