Skip to content

Instantly share code, notes, and snippets.

View devahmedshendy's full-sized avatar

Ahmed Shendy devahmedshendy

  • Egypt
View GitHub Profile
@devahmedshendy
devahmedshendy / random.md
Last active July 10, 2020 06:48
Secure random values (in Node.js)

Not all random values are created equal - for security-related code, you need a specific kind of random value.

A summary of this article, if you don't want to read the entire thing:

  • Don't use Math.random(). There are extremely few cases where Math.random() is the right answer. Don't use it, unless you've read this entire article, and determined that it's necessary for your case.
  • Don't use crypto.getRandomBytes directly. While it's a CSPRNG, it's easy to bias the result when 'transforming' it, such that the output becomes more predictable.
  • If you want to generate random tokens or API keys: Use uuid, specifically the uuid.v4() method. Avoid node-uuid - it's not the same package, and doesn't produce reliably secure random values.
  • If you want to generate random numbers in a range: Use random-number-csprng.

You should seriously consider reading the entire article, though - it's

@devahmedshendy
devahmedshendy / .gitignore
Last active February 18, 2019 10:51
Common gitignore entries
# Reference: https://github.com/github/gitignore
target/
infrastrucure/development/database
!.mvn/wrapper/maven-wrapper.jar
# Project #
node_modules/
@devahmedshendy
devahmedshendy / download-m3u8-video-using-ffmpeg.txt
Last active June 30, 2021 22:39
Download M3U8 Video with FFmpeg
1. To start off, download and install FFmpeg if you haven't already.
2. Next, go to the streaming site from where you want to download and grab the M3U8 video URL
3. Open the command line tool, and type:
ffmpeg -i "http://example.com/video_url.m3u8" -c copy -bsf:a aac_adtstoasc "output.mp4"
reference: https://windowsloop.com/download-m3u8-video-with-ffmpeg