Git Product home page Git Product logo

Comments (3)

kuon avatar kuon commented on July 29, 2024

I designed base24 for a special purpose: for human users to write down cryptographic keys. This is why the encoding has to be very simple. This is also why fixed length chunk is acceptable as those keys are usually multiple of 32bits in length. And if you use a 24bit key, just pad the key with 0 before encoding.

I did write an implementation with arbitrary length data too, but it was over complicated and I believe it is not needed. There are many better way to encode arbitrary long data (base64, base32, base16).

I strongly believe that base24 should be kept simple, and be geared toward the special use it was designed for.

I do appreciate your efforts, and you are of course absolutely free to use whatever implementation you want. But I will not modify my implementations to support arbitrary length data.

from java-base24.

hrumhurum avatar hrumhurum commented on July 29, 2024

Encoding a license key with Base24 would be a very valid usage scenario. It would require variable length encoding in order to produce the shortest keys.

The same would apply to authentication passcodes/beacons: the shorter the better.

So, the mileage varies depending on a use case. And people tend to ignore various scenarios limiting the usefulness of their designs once their own problem is solved. Which is a sane thing to do, in a way, but only until the tables are turned,

Regarding the complexity of implementation: it gets trickier with variable length encoding but totally doable.

Just my 2 cents.

from java-base24.

kuon avatar kuon commented on July 29, 2024

I am not saying your points are invalids. But it is a choice I made.

The specific use case I designed base24 for is when cryptographic key is generated and you have to write it down. If you do an error, it will usually lead to data loss that is why an unambiguous encoding was needed. And I really believe it is fine if base24 is designed specifically for this particular use case.

Of course, it can be used for other uses, but I don't think it would justify supporting arbitrary length encoding.

from java-base24.

Related Issues (2)

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.