Code Monkey home page Code Monkey logo

dosyago / discohash Goto Github PK

View Code? Open in Web Editor NEW
217.0 217.0 10.0 2.48 MB

:rocket: DISCoHAsH - Simple, fast, quality hash in 120 lines. 10GB/s serial (depending on hardware). Also in NodeJS

Home Page: https://dosyago.com

License: Apache License 2.0

C++ 77.17% C 2.77% JavaScript 15.32% Shell 3.88% Makefile 0.86%
256-bit 64-bit arx bebb4185 cpp cryptanalysis cryptography cryptohash discohash ecrypt encryption hash hashing hashing-algorithm node-js nodejs prime smhasher supercop supercrypt

discohash's Introduction

dosyago

Special

discohash's People

Contributors

labarilem avatar o0101 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

discohash's Issues

Multi-core Hash calculation

Hi,

First of all let me thank you for this amazing library, which is currently powering my own project https://github.com/julianxhokaxhiu/FFNx - This is a 32-bit modding platform loaded as DLL ( w/process injection ).

Through your library we were able to implement animated textures in a game which was never supposed to have them upscaled in the first place. Although as the game itself is developed around "old game logics" ( single core / single thread ), the issue we're currently facing is that when we use this library to hash some data, it can't really scale, and because of this we start to lose FPS.

But in the team, we were having some new ideas which might benefit your code as well, not only our case: Multi-core hashing.

How would this be implemented in practical ways?

  1. Spawn a new thread that will be ready to listen for new hashes to calculate
  2. On a new hash request the library will check which available cores we have, and pick one that is currently free
  3. Throw the hash to that core and return back the result in sync

I know this is not really "async" per-se, but it would help in making those calculations faster as we can throw them to another core which the CPU might squeeze better, instead of parking the current core data to make room for the new calculations it has to do.

What do you think about this implementation? Does it make sense? How complex would it be to have it implemented on the core library code?

Thank you in advance,
Julian

Incosistent buffer reading

Hello,
When I do discohash /dev/random discohash doesn't read /dev/random data as a non-stoppable data stream, rather it treats the file as empty. This behavior can be verified by hashing an empty file or /dev/null. Generally, this behavior is certainly a bug, at least when I compare this with sha utils.

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.