Представим, нам необходимо создать 32-байтовое рамдомное значение и закодировать его в base46. Вот как это сделать на разных скриптовых языках и средах. При этом мы убираем ненужные нам символы, такие как «+», «-«, «_» и «/’:
Python
python -c 'import os,base64; print(base64.urlsafe_b64encode(os.urandom(32)).decode())' |
Bash
dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64 | tr -d -- '\n' | tr -- '+/' '-_'; echo |
OpenSSL
openssl rand -base64 32 | tr -- '+/' '-_' |
PowerShell
# Add System.Web assembly to session, just in case Add-Type -AssemblyName System.Web [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes([System.Web.Security.Membership]::GeneratePassword(32,4))).Replace("+","-").Replace("/","_") |
Terraform
1 2 3 4 5 | # Valid 32 Byte Base64 URL encoding set that will decode to 24 []byte AES-192 secret resource "random_password" "cookie_secret" { length = 32 override_special = "-_" } |
[Посещений: 176, из них сегодня: 1]