【iPhone】ブックマークなどの代わりに使えるショートカット [パスワード付き]

更新情報

・2021/09/10・11
 ここで配布しているショートカット「Secret Bookmarks」でブックマークを作成する際、タイトルにピリオド(.) が入っていると「キーパスを評価できませんでした」とエラーが出るようです。(「辞書の値を取得」アクションのエラー。入れ子になっている辞書の値を取得しようとするので見つからないと出る)
 その場合はすみませんが、手動でピリオド(.)を除去したタイトルを設定するようにしてください。
 そのうちショートカット側でタイトルからピリオドを自動除去(エスケープ)するように修正するつもりです。


それなりの機能と汎用性があるものを作ってみました。ブックマークとしても使えるし、簡易なクリップボードマネージャーとしても使えるし、コピペをストックしたりするのにも使えるし、日記帳としても使えるし....

また、パスワードも登録できるので、自分以外の誰かに勝手に実行されたりといったことも防げるようになっています。(まあレシピやファイルを直接編集すれば簡単に無効化できるので、あってないようなものです)

1. ショートカットの取得

ショートカットは以下のリンクから取得できます。

Secret Bookmarks


2. 使い始める前に

初回実行時、ブックマークを保存する用のファイルの作成を行います。

パスワードを登録するように言われるので、好きなパスワードを登録してください。(パスワードを設定したくない場合は空のパスワードを登録するようにしてください)

ここで登録したパスワードが2回目以降の起動に必要になります。

なお、パスワードは後で変更することができます。


3. ブックマークとして使う

本ショートカットのメインの機能はブックマーク(URLのお気に入り)です。その使い方を説明します。

ブックマークの作り方

(1) Safariで登録したいページを開く

(2) 共有シートからショートカットを実行する
※ 実行時にはパスワードが必要です

(3) 「Save a bookmark」からURLとタイトルの組を登録する
※ Safariの共有シートから開いた場合、URLと(ページの)タイトルは自動で入力されるようになってます


ブックマークの開き方

(1) ショートカットを実行する
※ 実行時にはパスワードが必要です

(2) 「Browse bookmark」から開きたいブックマークを選択する(複数選択可)

(3) メニューの中の「Open the page in Safari」を押して、選択されたURL(複数可)をSafariで開くことができる
※ そのほかにも、クリップボードにURLをまとめてコピーしたり、URLの内容を個別に確認したりといったことができます


ブックマークの削除・編集

作成したブックマークは削除したり、タイトルを編集したり、そのURLを編集したりすることができます。タイトルはユニークな名前でなければならないので注意してください。(重複したものを使おうとした場合はエラーが出ます)


4. クリップボードマネージャーとして使う

簡易なクリップボードマネージャーとしても使うことができるので、その使い方を説明します。

選択された内容を保存

(1) テキストを選択します

(2) 共有シートからショートカットを実行します

(3) 「Save a bookmark」を選択して、内容とタイトルを編集して保存します
※ 内容とタイトルは自動入力されるようになっています。タイトルは現在の時間です

また、クリップボードに保存したい内容をコピーしてから普通に実行しても同じ結果が得られます


5. その他の使い方 [参考]

・日記帳として使う
 タイトルに自動で日付が振られることを利用すれば、簡単な日記を書くこともできると思います。

・アスキーアートをストックする
 "アスキーアート コピペ"などと検索すると出てくるページに載っているアスキーアートをタイトル付きで保存して管理できます。

・ツイートのリンクをストックする
 ツイートのリンクをいくつかストックして、まとめてクリップボードに読み込んだり、Safariで開いたりできます。


6. パスワードを変更する

メニューの「Change your password」からパスワードを変更することができます。なお、変更するには現在のパスワードを入力する必要があります。


7. パスワードを忘れた時は

現在のパスワードが正しくない時 に実行されている「ショートカットを終了」アクションをレシピから削除した後、メニューの「Change your password」からパスワードを変更してください。

作業は複製したレシピでやるといいと思います。

※ ファイルに書き込まれているのは、生のパスワードそのものではなく、パスワードのハッシュ値です。ハッシュ値の特性上、ハッシュ値から元のデータであるパスワードを復元することは(理論上)不可能です。なので、パスワードを忘れた場合は上記のようにして、強制的にリセットする必要が生じます。


8. 仕組みなど

データは単一のJSONファイルで管理しています。ショートカットを初めて実行し終わった時点では、ファイルの内容は以下のようになっているはずです。

secretbookmarks.json

{"bookmks":{},"passwd":"6f957b16943a35a81c84fdc1c9a18c73700d5cc5a8b3363ffee731883e00b58b30c59db45fa2103997daf29c492c0ad62f809bd89e7fbf1d86e165d62c9ddd1e"}

"bookmks" の初期値は、空のオブジェクトになっています。ここに「鍵がタイトル、値がURL」の形式になっているオブジェクトを書き込んでいきます。"passwd" の値は登録したパスワードのハッシュ値です。


2回目以降の実行では、以下の手順でパスワード認証を行います。ハッシュ値計算やファイルへの保存の際は、複雑なことはやりません。つまり、"入力されたパスワードのハッシュ値" を素直に使います。

(1) 入力されたパスワードのハッシュ値を計算(ハッシュ化)

(2) 「計算したハッシュ値 == "passwd"の値」ならOK, そうでないなら認証失敗


いくつかブックマークを登録した後のファイルは以下のようになっているはずです。

secretbookmarks.json

{"bookmks":{"note ――つくる、つながる、とどける。":"https:\/\/note.com\/","うにのーと|note":"https:\/\/note.com\/u2_note","ショートカット ユーザガイド":"https:\/\/support.apple.com\/ja-jp\/guide\/shortcuts\/welcome\/ios"},"passwd":"6f957b16943a35a81c84fdc1c9a18c73700d5cc5a8b3363ffee731883e00b58b30c59db45fa2103997daf29c492c0ad62f809bd89e7fbf1d86e165d62c9ddd1e"}


ショートカット内では、「JSONファイルをショートカットの辞書として読み込んだもの」を手動変数として管理していて、変数に加えた内容を最終的にファイルに書き込む(反映させる)ことで、ブックマークの削除だったり、更新だったりといった機能を実現しています。

なお、ブックマークの削除は処理の都合上値が空のタイトルが存在した場合は選択していなくても削除されます。(勝手にゴミ掃除してくれる仕様ということにしている)


9. まとめ

パスワードなどの機密情報の保存には向かないしやってはいけないということは念押ししておきます。(ファイルをうっかり見られたら内容がもろ見え)

あと、今回のショートカットは「一つのレシピ、一つのファイル」で動くことを目標にしているので、アクション数がそこそこ多くなっています。

また、ハッシュ値を使ったパスワード認証の仕組みは、現実のシステムでも使われている方法です。ハッシュ値を使うメリットは、生パスワードをシステム側に保存せず、パスワード認証の仕組みが実現できることです。(実際にはハッシュ化だけではセキュリティ的に不十分なので、他の手法と組み合わせて使われる)

ショートカットは「ハッシュを生成」というアクションでハッシュ値を簡単に計算できるので、今回はレシピ中でそれを使ってパスワードの仕組みを組み込んでみました。

また、レシピ中にハッシュ値を「テキスト」アクションなどで埋め込む方式だとパスワード変更の際に面倒なため、ハッシュ値もファイルに書き込むようにしました。(本当は同じファイルに書き込みたくなかったんですが、使うファイルは一つにしたかったので)

パスワードに関してはギミックとしてあったら面白いかな程度で付けたので、不要ならレシピを編集して削除してください。

では今回はこの辺で。

この記事が気に入ったらサポートをしてみませんか?