Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider using crypto to generate md5/sha1 hashes #24

Open
wovalle opened this issue Oct 5, 2022 · 8 comments
Open

Consider using crypto to generate md5/sha1 hashes #24

wovalle opened this issue Oct 5, 2022 · 8 comments

Comments

@wovalle
Copy link

wovalle commented Oct 5, 2022

First of all, thank you for the library!

Have you considered using crypto.createHash to create md5/sha1 hashes instead of the js dependencies?

This would allow us to use your libraries in non-node runtimes like cloudflare workers (currently it fails because js-md5 contains eval which is usually a no-no for security reasons).

I created a temporary fork and replaced the dependencies for the native crypto and all tests passed succesfully, can create a PR if you agree.

Thanks!

@doroved
Copy link

doroved commented Mar 13, 2023

First of all, thank you for the library!

Have you considered using crypto.createHash to create md5/sha1 hashes instead of the js dependencies?

This would allow us to use your libraries in non-node runtimes like cloudflare workers (currently it fails because js-md5 contains eval which is usually a no-no for security reasons).

I created a temporary fork and replaced the dependencies for the native crypto and all tests passed succesfully, can create a PR if you agree.

Thanks!

Hi, is it possible to adapt this script to work in a browser?

@wovalle
Copy link
Author

wovalle commented Mar 15, 2023

I think this library is only exported as a commonjs module. If it is exported as an esmodule + those two dependencies I mentioned are replaced, this would be 100% browser compatible.

@titanism
Copy link

titanism commented Aug 1, 2024

@wovalle where is this fork/repo at?

@titanism
Copy link

titanism commented Aug 1, 2024

Ah, it's at https://github.com/luchyio/uuid-by-string

titanism added a commit to forwardemail/uuid-by-string that referenced this issue Aug 1, 2024
@titanism
Copy link

titanism commented Aug 1, 2024

We've published @forwardemail/uuid-by-string in the interim to npm. Can you please submit a PR so we can get this in the main repo of uuid-by-string for the wider npm community? @wovalle

@titanism
Copy link

titanism commented Aug 1, 2024

@wovalle one small note, you should add this to the top of your src/lib.js file before sending a PR over:

+const crypto = require('node:crypto');
src/lib.js
73:  return new Uint8Array(crypto.createHash("md5").update(buf).digest());
82:  return new Uint8Array(crypto.createHash("sha1").update(buf).digest());

Otherwise current tests do not pass:

Screen Shot 2024-08-01 at 5 15 18 AM

You can see we've done this already at: forwardemail@ab07dd6

@wovalle
Copy link
Author

wovalle commented Aug 2, 2024

First of all, so cool that a service I've used in the past (forwardemail) cloned one of my repos :D

Sure, just added node:crypto @titanism

@wovalle
Copy link
Author

wovalle commented Aug 2, 2024

Also created the PR #37 to merge back to upstream. Rebased my changes on top of current master so the commit is clean 👍🏽

Let me know if you have any questions @danakt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants