Code Monkey home page Code Monkey logo

cryptography's Introduction

密码编码学实践

1. 目录介绍

  • md2-constants
    • 《MD2中用于随机置换的S盒是如何生成的?》源码
  • md2
    • 《MD2哈希算法实现(附源码)》源码
  • md4
    • MD4算法源码
  • md5
    • MD5算法源码
  • sha1
    • SHA1算法源码
  • sha256
    • SHA256及SHA224算法源码
  • sha512
    • SHA512及SHA384, SHA512-224, SHA512-256, SHA512/t算法源码
  • sm3
    • 国密SM3算法源码

2. 如何使用

下载:

$ git clone https://github.com/guyongqiangx/cryptography.git

编译, 编译完会自动运行测试。:

$ cd cryptography
cryptography$ cd sha1
cryptography/sha1$
cryptography/sha1$ make
gcc -Wall -g -O2 -c utils.c -o utils.o
gcc -Wall -g -O2 -c sha1.c -o sha1.o
gcc -Wall -g -O2 -c sha1test.c -o sha1test.o
gcc -Wall -g -O2 utils.o sha1.o sha1test.o -o sha1

Run Test...
./sha1 -x
Internal hash tests for ./sha1:
./sha1("")
  Expect: da39a3ee5e6b4b0d3255bfef95601890afd80709
  Result: da39a3ee5e6b4b0d3255bfef95601890afd80709

./sha1("a")
  Expect: 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
  Result: 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8

./sha1("abc")
  Expect: a9993e364706816aba3e25717850c26c9cd0d89d
  Result: a9993e364706816aba3e25717850c26c9cd0d89d

./sha1("message digest")
  Expect: c12252ceda8be8994d5fa0290a47231c1d16aae3
  Result: c12252ceda8be8994d5fa0290a47231c1d16aae3

./sha1("abcdefghijklmnopqrstuvwxyz")
  Expect: 32d10c7b8cf96570ca04ce37f2a19d84240d3a89
  Result: 32d10c7b8cf96570ca04ce37f2a19d84240d3a89

./sha1("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
  Expect: 761c457bf73b14d27e9e9265c46f4b4dda11f940
  Result: 761c457bf73b14d27e9e9265c46f4b4dda11f940

./sha1("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
  Expect: 50abf5706a150990a08b2c5ea40fa0e585554732
  Result: 50abf5706a150990a08b2c5ea40fa0e585554732

cryptography/sha1$

测试例子不仅只是测试,还可以当做哈希工具使用:

cryptography/sha1$ ./sha1 -h
Usage:
Common options: [-x|-f file|-s string|-h]
Hash a string:
        ./sha1 -s string
Hash a file:
        ./sha1 -f file [-k key]
-x      Internal string hash test
-h      Display this message

计算字符串哈希:

cryptography/sha1$ ./sha1 -s "I like moon!"
./sha1("I like moon!") = 60580c84e774081d149596819fa8a2499c76f5d8
cryptography/sha1$ echo -n "I like moon!" | openssl dgst -sha1
(stdin)= 60580c84e774081d149596819fa8a2499c76f5d8

计算文件哈希:

cryptography/sha1$ ./sha1 -f sha1.o
./sha1(sha1.o) = fb70f3ceef0917427fc6eb795816826756132e15
cryptography/sha1$ openssl dgst -sha1 sha1.o
SHA1(sha1.o)= fb70f3ceef0917427fc6eb795816826756132e15

cryptography's People

Contributors

guyongqiangx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.