Giter Site home page Giter Site logo

Call SHA-1 with BYTES input. about jssha HOT 6 CLOSED

caligatio avatar caligatio commented on May 30, 2024
Call SHA-1 with BYTES input.

from jssha.

Comments (6)

Caligatio avatar Caligatio commented on May 30, 2024

Hmm, I suspect you're sending real bytes instead of my pseudo-byte string. Do you know what JavaScript type "mybytes" actually is? I can add some detection logic to routine to try to handle this.

from jssha.

Caligatio avatar Caligatio commented on May 30, 2024

Closing this since more information has been needed for over 3 months. Feel free to reopen if you run into the issue again.

from jssha.

gpalomar avatar gpalomar commented on May 30, 2024

Hi @Caligatio !
I have a question maybe related to the closed issue.

Please, check this plunker first.

When you say BYTES, are you saying javascript binary object (ArrayBuffer or Blob)?
What is the difference between setting 'TEXT' or 'BYTES' input string? I obtained the same hash result by setting any on them as "new jsSHA" type parameter.

Is it possible to pass a raw bytes object to the library without converting it to a string before?

Thanks in advance!

from jssha.

Caligatio avatar Caligatio commented on May 30, 2024

Ok, so TEXT vs BYTES: TEXT operates on the underlying string as a Unicode value and unfortunately has to do complicated bitwise operations stuff for it to work correctly (see str2binb). BYTES, on the other hand, treats each string character as a raw byte and doesn't do any bitwise operations. If the string passed as "TEXT" is an ASCII string, they'll operate the same.

I started this library quite a few years ago back in the IE7 days when ArrayBuffers weren't a thing. I'm somewhat hesitant to start adding browser version dependent things because that seems like a slippery slope to everything I hate about JavaScript.

It looks like ArrayBuffer requires IE10 or later and Blob isn't supported on mobile :(

from jssha.

gpalomar avatar gpalomar commented on May 30, 2024

Ok, I'm not sure I fully understood your answer, but the difference lies in the fact that using TEXT, it converts the values using str2binb. However using BYTES the bitwise operations are unnecessary since each character is a raw byte. I think that 'BYTES' for that case is a little bit confusing for people like @lazydino and me. In my implementation I wish to be able to use an array of bytes, I understand you wish to maintain browser compatibility, but I believe a real binary read is necessary.

from jssha.

Caligatio avatar Caligatio commented on May 30, 2024

Check out #43 and let me know if that branch works for you.

from jssha.

Related Issues (20)

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.