#include <boost/uuid/sha1.hpp>
#include <iostream>
/* @brief
SHA1摘要算法:一种很重要的密码学算法,可将任意长度的文本压缩成20个字节的
独一无二的的摘要(uuid名字生成器使用该算法)
*/
using namespace boost::uuids::detail;
using namespace std;
int main()
{
sha1 sha; // 声明摘要对象
char* szMsg = "This is a short message!"; //--------------------------
// 向摘要压入文本
//-------------------------- // 第一种:
// 压入一个字节
sha.process_byte(0x10);
// 第二种:
// 压入多个字节(指定字节数)
sha.process_bytes(szMsg, strlen(szMsg));
// 第三种:
// 压入多个字节(指定指针范围,多少地址)
sha.process_block(szMsg, szMsg+strlen(szMsg));
//---------------------------
// 取出摘要中加密后的内容
//---------------------------
// 声明摘要的返回值
unsigned int digest[5]; // unsigned int(4个字节) * 5个unsigned int = 20 个字节
sha.get_digest(digest); // 返回压缩后的20个字节的摘要内容
for (int i=0; i<5; ++i)
{
cout<< hex << digest[i]; // 以十六进制输出
}
cout <<endl;
for (int i=0; i<5; ++i)
{
cout<< digest[i]; // 跟以十六进制输出的效果一样
} getchar();
return 0;
}

boost.sha1的更多相关文章

  1. Boost程序库完全开发指南——深入C++“准”标准库(第3版)

    内容简介  · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉. Boost 由C++标准委员会部分成员所设立的Bo ...

  2. boost uuid

    uuid: uuid库是一个小的使用工具,可以表示和生成UUID UUID是University Unique Identifier的缩写,它是一个128位的数字(16字节),不需要有一个中央认证机构 ...

  3. Boost 库uuid 的使用

    UUID 简介 通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分. uuid 版 ...

  4. boost中的有用工具assign和uuid

    assign assign重载'+'=和','实现连续赋值 assign不仅支持所有8个STL标准容器(vector.string.deque.list.set.multiset.map.multim ...

  5. boost 介绍

    简介: Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容 ...

  6. boost强分类器的实现

    boost.cpp文件下: bool CvCascadeBoost::train( const CvFeatureEvaluator* _featureEvaluator, int _numSampl ...

  7. 【详细教程】论android studio中如何申请百度地图新版Key中SHA1值

    一.写在前面 现在越来越多的API接口要求都要求提供我们的项目SHA1值,开发版目前还要求不高,但是发布版是必定要求的.而目前定位在各大APP中也较为常见,当下主流的百度地图和高德地图都在申请的时候会 ...

  8. SHA-1算法

    SHA-1.h #ifndef _SHA1_H #define _SHA1_H #include<iostream> using namespace std; //4个函数 #define ...

  9. Boost信号/槽signals2

    信号槽是Qt框架中一个重要的部分,主要用来解耦一组互相协作的类,使用起来非常方便.项目中有同事引入了第三方的信号槽机制,其实Boost本身就有信号/槽,而且Boost的模块相对来说更稳定. signa ...

随机推荐

  1. C#接口之IEnumerable,IEnumerator

    IEnumerable 截图来源于https://msdn.microsoft.com/zh-cn/library/system.collections.ienumerable.getenumerat ...

  2. Making the iPhone vibrate (iPhone 振动)

    from: http://stackoverflow.com/a/4725039 There are two seemingly similar functions that take a param ...

  3. js 文件下载

    工程WebApi: 点击按钮执行的handler exportClick() { var profile = { content: this.state.profile, type: MappingT ...

  4. Linux下的CPU性能瓶颈分析案例

    问题描述: 在对notify执行性能测试时发现cpu负载突然飙高,cpu利用率高达95%.这时候就要排查是哪些线程消耗了cpu,并从代码层找到占用cpu的“罪魁祸首”. 步骤: 1. 先用ps+gre ...

  5. Linux使用expect实现自动登录的脚本

    前提条件服务器已经安装过tcl和expect, 若未安装:可以先执行 yum  install tcl  expect  进行安装 第一步.编写以下自动登录脚本login.sh ########### ...

  6. MathType编辑半直积符号的步骤

    在数学中,特别是叫做群论的抽象代数领域中,半直积(semidirect product)是从其中一个是正规子群的两个子群形成一个群的特定方法.半直积是直积的推广.半直积是作为集合的笛卡尔积,但带有特定 ...

  7. GIS-013-Cesium Terrain 数据生成

    一.Python 1.修改Python脚本文件 if __name__=='__main__': #sys.argv = ['F:\\000_Terrain\\T7-gdal2srtmtiles-de ...

  8. GIS-003-在线地图下载及应用

    目前在线地图有谷歌.高德.百度.Bing.soso.天地图.OpenStreet.ArcGIS Online等.在企业应用中,一般需要物理网络隔绝,就有必要下载地图数据之后模拟发布,可以选择下载谷歌影 ...

  9. 如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?

    <?php/* //命令行输入输出流fwrite(STDOUT,"Enter your name:"); $name = trim(fgets(STDOUT)); fwrit ...

  10. Discuz 升级X3问题汇总整理

    最近一段时间公司的社区垃圾帖数量陡然上涨,以至于社区首页的推荐版块满满都是垃圾帖的身影,为了进一步解决垃圾帖问题我们整整花了1天时间删垃圾贴,清除不良用户,删的手都酸了,可见垃圾帖的数量之多!可耻的刷 ...