/* sha1 digest function, using boost. By Paul Dreik 20121001 http://www.pauldreik.se/ License: GPLv2 or later, at your option. */ #include <fstream> #include <iostream> #include <iomanip> #include <boost/uuid/sha1.hpp> int main(int argc, char* argv[]) { if(argc<2) { std::cerr<<"Supply file name as the first argument.\n"; return -1; } //open the file std::ifstream ifs(argv[1],std::ios::binary); if(!ifs.good()) { std::cerr<<"bad file\n"; return -2; } boost::uuids::detail::sha1 sha1; unsigned int hash[5]; char buf[1024]; while(ifs.good()) { ifs.read(buf,sizeof(buf)); sha1.process_bytes(buf,ifs.gcount()); } if(!ifs.eof()) { std::cerr<<"not at eof\n"; return -3; } ifs.close(); sha1.get_digest(hash); std::cout<<std::hex<<std::setfill('0')<<std::setw(sizeof(int)*2); for(std::size_t i=0; i<sizeof(hash)/sizeof(hash[0]); ++i) { std::cout<<hash[i]; } std::cout<<" "<<argv[1]<<std::endl; return 0; }
Visar inlägg med etikett boost. Visa alla inlägg
Visar inlägg med etikett boost. Visa alla inlägg
måndag 1 oktober 2012
SHA1 calculation using boost
Here is how to calculate a SHA1 hash using boost.
fredag 23 december 2011
Använda alla bibliotek från boost
Jag träffade nyligen en c++-utvecklare som precis som jag är en varm anhängare av boost. Han hade använt, med något enstaka undantag, alla boostbibliotek! Jag blev omedelbart imponerad.
Jag går igenom listan själv och konstaterar att jag faktiskt använt 27 av biblioteken i verkliga projekt. Har satt en asterisk framför de jag använt hittills.
Listan finns här för version 1.48 (senaste i skrivande stund). Den innehåller imponerande 111 bibliotek! (en del listas förvissa som flera).
Jag får en viss lust att gå igenom de resterande och skriva ett litet program för var och en av dom. Det får vänta till nån sömnlös natt...
Jag går igenom listan själv och konstaterar att jag faktiskt använt 27 av biblioteken i verkliga projekt. Har satt en asterisk framför de jag använt hittills.
Listan finns här för version 1.48 (senaste i skrivande stund). Den innehåller imponerande 111 bibliotek! (en del listas förvissa som flera).
Jag får en viss lust att gå igenom de resterande och skriva ett litet program för var och en av dom. Det får vänta till nån sömnlös natt...
- Accumulators
- *Any
- *Array
- *Asio
- *Assign
- *Bimap
- *Bind
- Call Traits
- Chrono
- *Circular Buffer
- Compatibility
- Compressed Pair
- Concept Check
- Config
- Container
- Conversion
- *CRC
- *Date Time
- Disjoint Sets
- Dynamic Bitset
- Enable If
- Exception
- *Filesystem
- Flyweight
- *Foreach
- Format
- Function
- Function Types
- Functional
- Functional/Factory
- Functional/Forward
- Functional/Hash
- Fusion
- Geometry
- GIL
- *Graph
- ICL
- In Place Factory, Typed In Place Factory
- *Integer
- *Interprocess
- Interval
- Intrusive
- *IO State Savers
- *Iostreams
- Iterators
- Lambda
- Lexical Cast
- Locale
- Math
- Math Common Factor
- Math Octonion
- Math Quaternion
- Math/Special Functions
- Math/Statistical Distributions
- Member Function
- Meta State Machine
- Min-Max
- Move
- MPI
- MPL
- Multi-Array
- Multi-Index
- *Numeric Conversion
- Operators
- Optional
- Parameter
- Phoenix
- Pointer Container
- Polygon
- Pool
- Preprocessor
- *Program Options
- *Property Map
- *Property Tree
- Proto
- Python
- *Random
- Range
- Ratio
- Rational
- *Ref
- *Regex
- Result Of
- Scope Exit
- *Serialization
- Signals
- Signals2
- *Smart Ptr
- Spirit
- Statechart
- Static Assert
- String Algo
- Swap
- System
- *Test
- *Thread
- Timer
- Tokenizer
- TR1
- Tribool
- *Tuple
- Type Traits
- Typeof
- Units
- Unordered
- Utility
- *Uuid
- Value Initialized
- Variant
- Wave
- Xpressive
onsdag 7 oktober 2009
Kompilera boost med visual c++ studio 2008 express
Jag håller just nu på att försöka få igång en applikation jag skrivit i windowsmiljö.
För att kunna köra samma kod på flera plattformar använder jag boost på diverse ställen.
Det är inte helt lätt att använda de bibliotek i boost som inte enbart består av templates. I instruktionerna på boosts hemsida används kommandona bootstrap följt av bjam.
Det fungerade inte för mig.
Efter att ha manuellt ha lagt till pathen till kompilatorprogrammen fungerar det betydligt bättre.
I kontrollpanelen, system, avancerat, miljövariabler lägger jag till variabeln path
;%c:\Program\Microsoft Visual Studio 9.0\VC\bin
som är den sökväg som innehåller filerna cl.exe etc.
För att kunna köra samma kod på flera plattformar använder jag boost på diverse ställen.
Det är inte helt lätt att använda de bibliotek i boost som inte enbart består av templates. I instruktionerna på boosts hemsida används kommandona bootstrap följt av bjam.
Det fungerade inte för mig.
Efter att ha manuellt ha lagt till pathen till kompilatorprogrammen fungerar det betydligt bättre.
I kontrollpanelen, system, avancerat, miljövariabler lägger jag till variabeln path
;%c:\Program\Microsoft Visual Studio 9.0\VC\bin
som är den sökväg som innehåller filerna cl.exe etc.
Prenumerera på:
Inlägg (Atom)