adiantum
Adiantum and HPolyC specification and test vectors (by google)
PoxHash
A block hashing algorithm with implementations in C, Rust, Go, Nim, Python and JS (by Chubek)
adiantum | PoxHash | |
---|---|---|
2 | 12 | |
474 | 7 | |
0.4% | - | |
2.5 | 7.6 | |
about 1 year ago | about 2 years ago | |
C | C | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
adiantum
Posts with mentions or reviews of adiantum.
We have used some of these posts to build our list of alternatives
and similar projects.
- Encrypting small messages with minimal overhead
-
Why do encryptions have to be longer than the original message?
If you need your ciphertext to be the same size as plaintext, then the go-to algorithm these days is AES-XTS. Alternatively, Google's Adiantum is available and designed for hardware without AES acceleration https://github.com/google/adiantum
PoxHash
Posts with mentions or reviews of PoxHash.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-18.
-
How do crypto functions deal with the issue of character size? (e.g. Unicode)
Hey guys. If you remember me from several months ago, with this object de art, I am here with a less cringy question than that of 'I made a hash function!!!111'. I apologize if this question is basic btw. My question is, how do crypto functions, of any kind, deal with character size? For example in C, wchar_t is either 2 or 4 bytes. So, if the implementation goes through the stream like stream++ it will be stepping word-wise not byte-wise. And then if another machine, using a different implementation, reads the stream byte-wise and not word-wise, then it won't get the same message right?
-
shibajs1.h: Quick and Dirty JSON Parsing (not an advertisement!) --- Seeking comments, good ones. Thanks
I am happy with my progress and I am not hasty at all. If you go to my Github you will see that my previous project was in every way inferior. At least I can wrap my head around most basic things now.
-
Encoding Huffman freq table?
The whole process is not optimal anyways. But I guess I will just have to pay my due diligence in this field until I can do something worthwhile. Keep in mind that I wrote this degeneracy so I have in the least grown. i don't want this compression algorithm to be as bad as what I just linked is. At least a bit more performant and applicable.
-
[Offer] I am a systems, network, and SciComp programmer, I am looking for small, short gigs to fund my libre projects. I have a good portfolio, and I have adequate grasp of theory. My prices begin at $5 and end at $60 for small, one-time gigs. C, x86-64|Aarch64 Assembly, Go, Python, Shell Scripting
I do a great deal of coding with Python. Most modern languages are similar. Like take my project PoxHash as an example. I wrote it in C, Rust, Nim, Go, Python and JS. So this alone should serve as enough of a proof that I can code. But know x many languages does not make you a 'good' programmer. Racking up languages in your portfolio is does not a programmer make! What makes a good programmer is 1- familiarity with theory 2- knowing where to apply that theory.
-
[For Hire] Systems/Network/Optimization/Embedded | (x86-64|Aarch64 Assembly, C, Python) | Looking for challenging jobs | practical yet theory-based output | Surprisingly manageable prices | Portfolio | 13y coding
Hey. I was recently working on a pubsub fuzztester where I used C + Assembly to communicate with the broker and Python to pre-generate the packets. My client wanted a much simpler thing, and we decided to part ways. That is why I, as I promised my former client, to always specify that I am a person to always take the more challenging way, and never aim at mediocrity. My recent projects include PoxHash, a block hash algorithm by me, which I implemented in 6 languages (C, Rust, Go, Nim, JS, Python). I always aim at micro-optimization. I never half-ass a job, I may take full-assing it too far though. Another recent project of mine is ProtoGen (I know!), a series of application-layer protocols in Go. I try often not to language-hop much. I post small codes in Gist form too, for example, a PRNG in x86-64 Assembly and a Hash in Aarch64 Assembly here or a metaprogram in Bash here.
-
[For Hire] Systems/Network/SciComp/(Embedded?) Programming (Assembly/C/Go/Rust/Python/Bash) - Affordable Prices (Starting at $100 to $200 per week)
You can view my portfolio in my Github profile, linked above. I have a special showcase session, sorted my projects by topic, and language also. I am a bit light on Assembly code samples, only have 3. That I am working on right now. My recent complete project was PoxHash, a block hash algorithm that is not very good, but is a good showcase of my skills as it is in six languages (C, Rust, Go, Python, Nim, JS). I have published several small Gists since then.
-
My plan for making 256bit signed and unsigned integers in C. Please help me understand this concept better.
I am against overusing libraries anyhow. Some people freaking spoil library usage. There's a package on NPM called 'is-odd'. I shrill, and cringe every time I remember this fact. I managed to implement my own hashing algorithm (which is very slow and is not a proper hash algorithm in general but I had fun making it and fun and education was the point) in C, Rust, Go, Nim, Python and JS without using a single non-std library! Hell sometimes I did not even use the STD when I should have. For example, I wrote a function called to_e_notation/toENotation across all these 6 languages (albeit I did not make full use of every languages features, so I kinda cheated) which formats a float into e notation. Did I need to do it? No. But I wanted to. I'm currently writing a PNG decoder/encoder for my new Rust project. I initially wanted to forgo implementing Zlib standard and bind the official implementation myself but I now thing it would be cool if I implemented Zlib myself. Should be educational. Thoughts?
-
My hash is slow. 1.5488e-01s for 20KB and that's for C. What can I do to increase its speed?
So I wrote a hash and implemented it in 6 languages: https://github.com/chubek/PoxHash
-
This algorithm should NOT work, but it DOES!!?
I once thought bitwise operations in Python is impossible due to it rotating one to the left every time it overflows but I now realize even bitwise operations with Python is possible WITH overflow (like, not using it's array.array STD as I did in my implementation of Python implementation of PoxHash but you can just & the result with max of the bits like if you want your integer to be strictly a byte you just & it with 0xff. These tricks make the life of a systems programmer in Python much easier.
- PoxHash, a bespoke denovo hashing algorithm implemented dep-free in Rust and 5 other languages. Rust compiled with rustc with -O is faster than GCC-compiled C with -O3!
What are some alternatives?
When comparing adiantum and PoxHash you can also consider the following projects:
constant-time-js - Constant-time JavaScript functions
ZedmeeHash - Strong, fast, non-cryptographic hash function
CheekyKitten - The Cheeky Kitten encoder is a simple binary obsfucation tool. Corrupts binary using a hex shuffle algorithm.
sha-2 - SHA-2 algorithm implementations
curve25519-voi - High-performance Curve25519/ristretto255 for Go.
u-config - a smaller, simpler, portable pkg-config clone