summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BACKLOG.md2
-rw-r--r--files/jotpass-0.1.0.tar.gzbin0 -> 2529 bytes
-rw-r--r--files/jotpass.1-0.1.0.html126
-rw-r--r--posts/readable-random-passwords-with-jot.md26
4 files changed, 153 insertions, 1 deletions
diff --git a/BACKLOG.md b/BACKLOG.md
index 5b8bed1..88136bd 100644
--- a/BACKLOG.md
+++ b/BACKLOG.md
@@ -38,6 +38,7 @@
## Blog
+* Upgrade temp-postgres
* Git checkout using fzf (git-co)
* Portable sftp server/sync using config-less rclone
* shellpass, shellpass-ssh, shellpass-fzf, keybindings for cwm and tmux
@@ -54,7 +55,6 @@
* Filter Nix Packages by platform (e.g. Chromium on macOS)
* Backup with zfs, mbuffer, lz4, and cron
* Inline HTML images with this simple script
-* Arch Linux on MacBook Pro
* Noscript photo gallery with pure CSS carousel, responsive images and deep links
* SQLite hexastore vs. Neo4j
* Setup a FreeBSD sftp server with basic email notifications from the command-line using bash, ssh, and the DigitalOcean command-line application
diff --git a/files/jotpass-0.1.0.tar.gz b/files/jotpass-0.1.0.tar.gz
new file mode 100644
index 0000000..32cb339
--- /dev/null
+++ b/files/jotpass-0.1.0.tar.gz
Binary files differ
diff --git a/files/jotpass.1-0.1.0.html b/files/jotpass.1-0.1.0.html
new file mode 100644
index 0000000..75ab8b4
--- /dev/null
+++ b/files/jotpass.1-0.1.0.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html>
+<!-- This is an automatically generated file. Do not edit.
+ Copyright (c) 2021 Stefan Kreutz <mail@skreutz.com>
+
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ -->
+<head>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <style>
+ table.head, table.foot { width: 100%; }
+ td.head-rtitle, td.foot-os { text-align: right; }
+ td.head-vol { text-align: center; }
+ .Nd, .Bf, .Op { display: inline; }
+ .Pa, .Ad { font-style: italic; }
+ .Ms { font-weight: bold; }
+ .Bl-diag > dt { font-weight: bold; }
+ code.Nm, .Fl, .Cm, .Ic, code.In, .Fd, .Fn, .Cd { font-weight: bold;
+ font-family: inherit; }
+ </style>
+ <title>JOTPASS(1)</title>
+</head>
+<body>
+<table class="head">
+ <tr>
+ <td class="head-ltitle">JOTPASS(1)</td>
+ <td class="head-vol">General Commands Manual</td>
+ <td class="head-rtitle">JOTPASS(1)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">jotpass</code> &#x2014; <span class="Nd">Print
+ readable random passwords</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<table class="Nm">
+ <tr>
+ <td><code class="Nm">jotpass</code></td>
+ <td>[<code class="Fl">-v</code>] [<code class="Fl">-a</code>
+ <var class="Ar">alphabet</var>] [<code class="Fl">-g</code>
+ <var class="Ar">groups</var>] [<code class="Fl">-w</code>
+ <var class="Ar">width</var>] [<code class="Fl">-s</code>
+ <var class="Ar">separator</var>]</td>
+ </tr>
+</table>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">jotpass</code> utility facilitates generating
+ random passwords suitable for handwriting.</p>
+<p class="Pp">The options are as follows:</p>
+<dl class="Bl-tag">
+ <dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
+ <dd>Enable verbose mode. Causes <code class="Nm">jotpass</code> to print the
+ entropy of the generated password to standard error.</dd>
+ <dt id="a"><a class="permalink" href="#a"><code class="Fl">-a</code></a>
+ <var class="Ar">alphabet</var></dt>
+ <dd>Draw characters from the given <var class="Ar">alphabet</var>. Defaults to
+ alphanumeric ASCII characters, excluding 01klnuvIO to improve
+ legibility.</dd>
+ <dt id="g"><a class="permalink" href="#g"><code class="Fl">-g</code></a>
+ <var class="Ar">groups</var></dt>
+ <dd>Set the number of <var class="Ar">groups</var>. Defaults to 12.</dd>
+ <dt id="w"><a class="permalink" href="#w"><code class="Fl">-w</code></a>
+ <var class="Ar">width</var></dt>
+ <dd>Set the <var class="Ar">width</var> of the groups. Defaults to 4
+ characters.</dd>
+ <dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
+ <var class="Ar">separator</var></dt>
+ <dd>Set the group <var class="Ar">separator</var> character. Defaults to dash
+ (-).</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXIT_STATUS"><a class="permalink" href="#EXIT_STATUS">EXIT
+ STATUS</a></h1>
+<p class="Pp">The <code class="Nm">jotpass</code> utility exits&#x00A0;0 on
+ success, and&#x00A0;&gt;0 if an error occurs.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp">Print a random password:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>$ jotpass
+P6ji-4pRZ-Ze7m-q7Bp-Vpye-HCjr-hygF-6TwQ-oRJT-yx6p-SyMB-AwUm</pre>
+</div>
+<p class="Pp">Specify a custom format:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>$ jotpass -a 0123456789abcdef -g 8 -w 2 -s ' ' -v
+49 1b 6e b0 e2 fc 16 b1
+The generated password has an entropy of 64 bits.</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">jot(1)</a>, <a class="Xr">arc4random(3)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp"><span class="An">Stefan Kreutz</span>
+ &lt;<a class="Mt" href="mailto:mail@skreutz.com">mail@skreutz.com</a>&gt;</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">October 12, 2021</td>
+ <td class="foot-os">OpenBSD 7.0</td>
+ </tr>
+</table>
+</body>
+</html>
diff --git a/posts/readable-random-passwords-with-jot.md b/posts/readable-random-passwords-with-jot.md
new file mode 100644
index 0000000..20bfb44
--- /dev/null
+++ b/posts/readable-random-passwords-with-jot.md
@@ -0,0 +1,26 @@
+---
+title: "Readable random passwords with jot"
+description: "A BSD utility to generate strong passwords suitable for handwriting."
+published: 2021-10-12
+---
+
+My handwriting is hardly readable.
+Without the context of words, several pairs of characters are almost indistguishable, e.g., *O* and *0*, *u* and *n*, or *1* and *l*.
+Yet, I sometimes need to come up with and write down strong passwords to be deciphered by my future self, or some unlucky other person.
+That's why I created a small script to generate random passwords specifically intended for handwriting.
+
+I called the script `jotpass` because it wraps the `jot(1)` utility shipped with [OpenBSD](https://man.openbsd.org/OpenBSD-6.9/jot), [NetBSD](https://man.netbsd.org/NetBSD-9.2-STABLE/jot.1), [FreeBSD](https://www.freebsd.org/cgi/man.cgi?query=jot&apropos=0&sektion=0&manpath=FreeBSD+13.0-RELEASE&arch=default&format=html), and others.
+By default, it prints a random sequence of 12 dash-separated groups of four unambiguous ASCII letters and digits each.
+However, you can change the alphabet, the number and width of groups, and the separator as described in the [man page](/files/jotpass.1-0.1.0.html).
+For example:
+
+ $ jotpass
+ P6ji-4pRZ-Ze7m-q7Bp-Vpye-HCjr-hygF-6TwQ-oRJT-yx6p-SyMB-AwUm
+
+ $ jotpass -a 0123456789abcdef -g 8 -w 2 -s ' ' -v
+ 49 1b 6e b0 e2 fc 16 b1
+ The generated password has an entropy of 64 bits.
+
+You can download a standard release tarball [here](/files/jotpass-0.1.0.tar.gz).
+The script targets OpenBSD, but it should work on other BSD variants alike.
+Feel free to drop me a mail if you have any feedback.
Generated by cgit. See skreutz.com for my tech blog and contact information.