Jun
4
Crypt::HSXKPasswd on MacOS (File::HomeDir workaround)
Filed Under My Projects, Computers & Tech on June 4, 2019 | 1 Comment
Due to a problem with the File::HomeDir
Perl module on recent versions of MacOS, the usual one-step instructions for installing Crypt::HSXKPasswd
from CPAN don’t work on Macs ATM (June 2019).
TL;DR
sudo cpan -f -I File::HomeDir sudo cpan Crypt::HSXKPasswd
May
12
bartificer.linkToolkit.js Version 1.0 Released
Filed Under My Projects, Software Development, Computers & Tech on May 12, 2017 | Leave a Comment
You may have noticed that on this site, links that open in a new tab get a nice icon to indicate that fact, and, links to domains outside of this site automatically open in a new tab and get that icon. This is achieved using a collection of JavaScript code that I have released as open source under the name bartificer.linkToolkit.js
, and published on GitHub.
The code was inspired by some examples in the Programming by Stealth series, and, that same series provided the impetus to give the project some final fit and finish before releasing version 1.0 today.
May
4
backup.pl Version 0.2 Released
Filed Under Software Development, Computers & Tech, Automation, My Projects on May 4, 2017 | Leave a Comment
I’ve just published a release of backup.pl
, my simple perl-based generic backup script. You can download the release, and get full documentation on the project’s GitHub page.
Nov
23
PBS 25 of x – A Case Study (bartificer.linkToolkit.js)
Filed Under My Projects, Software Development, Computers & Tech on November 23, 2016 | Leave a Comment
This instalment is a little unusual – rather than learning new topics, and then demonstrating them with a few simple examples, we’re going to look at a real-world JavaScript API, see how it works, and in so doing, reinforce what we’ve already learned, and expand our knowledge a little.
The library we’ll be examining is bartificer.linkToolkit.js, a small open source library I released over the weekend. This library bundles some functions for manipulating links in HTML documents. The two main functions of the library are to ensure that links with a target of _blank
also specify a rel
of noopener
(for security reasons), and, to automatically make links leading out of the site open in a new tab, and denoting that fact with an icon appended to the end of the links. You can see the library in use right here on this page!
We’ll be looking at the library from three points of view – the actual JavaScript code, the JSDoc comments, and the documentation produced from those comments, and, project management.
Dec
15
hsxkpasswd
Without sudo
(with perlbrew
)
Filed Under System Administration, My Projects, Security, Computers & Tech on December 15, 2015 | 2 Comments
While it’s very easy to install hsxkpasswd
onto your system from CPAN – it’s literally just one command (see below) – it requires administrator access to the machine.
sudo cpan Crypt::HSXKPasswd
This is all well and good if you have administrator access and are sure you want the module installed system-wide. But, what if you don’t have admin access, or, what if you just want to experiment with the module in your own home directory? The answer is perlbrew
, a system for running custom versions of Perl inside your home directory. No need for sudo
, and what ever you install with perlbrew
is entirely contained within your home directory. If you already have perlbrew
installed and configured with a version of Perl greater than or equal to 5.16, you can skip to the final step. If not, you’ll need to make your way through all the steps.
Step 1 – Install perlbrew
Into Your Home Dir
There are a few different ways of installing perlbrew
, but I find the following method the simplest:
curl -L http://install.perlbrew.pl | bash
That should install perlbrew
into your home directory, and it should tell you to append some code to the end of your ~/.bash_profile
file, which you can do with the following command:
echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile
Once that’s done, close your Terminal window and open a new one (this is to pick up the new environment variables defined in ~/perl5/perlbrew/etc/bashrc
). You’ll know the install has been successful if you can run the perlbrew
command:
perlbrew version
Step 2 – Install a Compatible Version of Perl into perlbrew
The joy of perlbrew
is that you can have as many versions of Perl installed at any one time as you like, and you can then switch between them with the perlbrew
command.
You can install Crypt::HSXKpasswd
, and hence the hsxkpasswd
terminal command, into any version of Perl greater than or equal to 5.16.
The following command will install Perl 5.16 into perlbrew
:
perlbrew install perl-5.16.0
Go off and make yourself a cup of your favourite beverage – this will take a while! 🙂
Once the install finally finishes, you can activate that version of perl (just on your account) with the command:
perlbrew switch perl-5.16.0
It’s important to note that if at any stage you want to disable perlbrew
and get back to the default system version of perl, the command to do so is:
perlbrew off
Step 3 – Enable the perlbrew
CPAN Client
If you haven’t already done so, enable the perlbrew
CPAN client cpanm
with the command:
perlbrew install-cpanm
Step 4 – Install Crypt::HSXKPasswd
Once you have perlbrew
installed and configured with a compatible version of perl, you can install Crypt::HSXKPasswd
with the following simple command:
cpanm Crypt::HSXKPasswd
You’ll know it’s worked if you can run the hsxkpasswd
terminal command:
hsxkpasswd --version
Sep
6
Using the hsxkpasswd
Terminal Command (Part 2 of 2)
Filed Under Computers & Tech, System Administration, My Projects, Security on September 6, 2015 | 5 Comments
This is the second part of a two-part post – read part 1 here.
In part 1 we learned how to use the command line too hsxkpasswd
to generate passwords, and how to use various flags to specify custom password generation configurations, and word sources. In this second part we’ll look at how to save these customisations for future use with .hsxkpasswdrc
files.
Aug
22
Using the hsxkpasswd
Terminal Command (Part 1 of 2)
Filed Under System Administration, My Projects, Security, Computers & Tech on August 22, 2015 | 8 Comments
Since version 3.5, the Crypt::HSXKPasswd
password generating perl module ships with a command line interface to the password generator called hsxkpasswd
. This provides a way for non-Perl programers to access the vast majority of the module’s functionality.
The easiest way to install the module, and it’s accompanying terminal command is via CPAN:
sudo cpan Crypt::HSXKPasswd
Once the module is installed, you’ll have access to the hsxkpasswd
terminal command.
Getting started is simple, run the command with no arguments at all and it will generate one password using the default settings:
bart-iMac2013:~ bart$ hsxkpasswd @@26.MEASURE.below.LIFT.95@@ bart-iMac2013:~ bart$
If you want more passwords, pass a number as an argument, and you’ll get that many passwords:
bart-iMac2013:~ bart$ hsxkpasswd 10 ~~08!hole!VOWEL!then!45~~ $$49^monday^YELLOW^remember^22$$ //69-express-MONDAY-edge-54// --42~KITCHEN~save~COLD~40-- ==51%REPLY%even%AUGUST%28== %%63&list&INSIDE&train&58%% ^^19!spain!CONGO!spain!01^^ ::30@SMILED@from@PERIOD@90:: &&05%decimal%THREE%remember%80&& ..47^ROAD^dress^BERLIN^11.. bart-iMac2013:~ bart$
Aug
11
Crypt::HSXKPasswd
and hsxkpasswd
now on CPAN
Filed Under My Projects, Security, Software Development, Computers & Tech on August 11, 2015 | 1 Comment
The latest stable release of both the Crypt::HSXKPasswd
perl module, and the hsxkpassd
terminal command are now available through CPAN: http://search.cpan.org/perldoc?Crypt%3A%3AHSXKPasswd
The library and terminal command are bundled together, and can be installed onto Unix/Linux/Mac OS X computers in the standard CPAN way:
sudo cpan Crypt::HSXKPasswd
When this install finishes, both the terminal command and perl module will be available for use on the system, along with the documentation for both:
man hsxkpasswd perldoc Crypt::HSXKPasswd
Even though I’ve put a lot of time an effort into creating these tools, I’ve chosen to released them entirely free of charge, and with a very liberal open-source license (BSD). If you find either the terminal command or Perl module useful, please consider making a donation below to help cover my time and costs.
If you find a bug, would like to suggest a change or improvement, or would like to contribute code to the project, please use the project’s GitHub page.
Aug
8
Uninstalling a Crypt::HSXKPasswd
Beta
Filed Under My Projects, System Administration, Computers & Tech on August 8, 2015 | 2 Comments
Firstly, thanks to everyone who runs beta versions of Crypt::HSXKPasswd
– every bug you find makes the software that little bit better!
However, now that the software is in CPAN, many of you may well want to move away from the stand-alone beta releases, and start getting the module directly from CPAN. Before you install the module from CPAN, you should remove the beta from your system. You can do that in two easy steps:
- Install
pm-uninstall
from CPAN:sudo cpan App::pmuninstall
- Use
pm-uninstall
to remove the beta version ofCrypt::HSXKPasswd
:sudo pm-uninstall Crypt::HSXKPasswd
May
28
Getting Started with Crypt::HSXKPasswd
Filed Under My Projects, Software Development, Computers & Tech on May 28, 2015 | 2 Comments
This is a quick-start guide to using the free and open source Crypt::HSXKPasswd
Perl module for generating secure but memorable passwords.
As I write this post the module is not on CPAN yet, and still in beta form. The module can be downloaded from the project’s GitHub page.
This article assumes you have the module installed – you’ll find installation instructions here.
Before we get stuck into some sample code, let’s first summarise the module’s philosophy.
The module is built around the idea of using common words as a kind of lattice around which to build passwords that are long, have a wide coverage of characters, and yet are still memorable. An ideal HSXKPasswd password will contain a mix of upper and lower case letters, some digits, and some symbols.
The module starts building a password by randomly closing a given number of words from a given dictionary. There can then be an optional number of digits added as pseudo words to the front and/or the back of the initial list of words. Next, a symbol can be used to separate the words, and finally a symbol can be used to pad the front and/or back of the password.
Think of it like this:
correct HORSE BATTERY staple 23 correct HORSE BATTERY staple 45 23*correct*HORSE*BATTERY*staple*45 --23*correct*HORSE*BATTERY*staple*45--