adamu

adamu

I’ve been working with a problem involving cryptography recently, which requires cryptographically secure random numbers. This post is my exploration into how to generate secure random numbers with Elixir.

Showing Posts 1 to 2

adamu

adamu OP

Playing with the concept, we could make a super simple wrapper library that provides sensible defaults.

defmodule Crypto do
  def random_bytes(n) do
    :crypto.strong_rand_bytes(n)
  end

  def random_integer(n) do
    {int, _unused_seed} = :rand.uniform_s(n, :crypto.rand_seed_s())
    int
  end

  def random_float() do
    {float, _unused_seed} = :rand.uniform_real_s(:crypto.rand_seed_s())
    float
  end
end
iex(1)> Crypto.random_bytes(10)
<<231, 232, 192, 181, 115, 153, 116, 24, 141, 158>>
iex(2)> Crypto.random_integer(10)
6
iex(3)> Crypto.random_float()
0.21388785742247599
walkr

walkr

Nice writeup. Thanks for sharing.

— All posts loaded —

Where Next? Top

Trending in Blog Posts Top

bartblast
Hey folks, I just published a post about Hologram’s funding and where the project goes next - the short version: Curiosum as Main Spons...
New
zorn
An educational side project in Elixir, Phoenix, and Tauri. I share what I learned while wiring Automerge into the BEAM, including how I s...
New
andreasronge
What happens if you design tools for LLMs instead of letting LLM use human tools ? Wrote a blog on why and what that enables. As I see ...
New
zorn
:pencil: Phoenix’s built-in LiveView test helpers require you to hand-build the form payload and start a fresh pipe after every click. Wo...
New
pckrishnadas88
In the previous part of this series, we built a Worker Pool from scratch, exploring point-to-point communication where a coordinator assi...
New
ryanzidago
Up until then, I found it very hard to communicate to LLMs that I specifically do not want to handle X case because maybe it has never ha...
New
pckrishnadas88
In Elixir, send/2 is non-blocking, which means an eager producer can easily flood a slow consumer’s mailbox. Because BEAM process mailbox...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews