見出し画像

【projectItemRenamer.jsx】公開準備 4【開発記】

環境確認
草案作成
UI構築
環境保存
環境読込
準備処理
選択判定
候補処理
置換機能
履歴操作
不足追加
総合試験
最終調整
公開準備 ←今ココ


概略

ハッシュ値の最新を探るも手元の OS では対応してなくてションボリ

#開発記
#ハッシュ値 #md5 #SHA1 #SHA2 #SHA3
#OpenSSL


前回の粗筋

使用例の横幅問題に苦心しながらも着々とトリセツの作成が進むのであった…🤤


梱包

梱包packagingは目的によって手順が大きく異なる。
アプリケーションの場合は本体が出来上がってもインストーラの生成を必要としたりと様々だ。
今回の場合はドロップレットバッチファイルの手合に近い代物しろものであるので大仰おおぎょうな付属物は殆ど無い。
早速準備をして行こう。


………堅っっった…この文体もイマイチっぽ🙄
まぁそもそも開発記,学習記は読んでもらおうという記事ではなく後から自分が情報を取る事を目的としている物なので解説記事としても成り立ってないのよね😑
見ててもコードの写真が出てるばっかりでろくに解説してないでしょ?🤤
時系列に並んでて「ここ、どうだったっけ?」を思い出せれば良いのでそうなってる🤪

アルゴリズム解説記事とか作る事が有るようなら考える必要は有るけどほぼほぼ手記だからね、当面こんなのよ🤤


チェックサム

OS 制作会社公式アプリストアとかからしか入手ダウンロードしない人だとえんがないけどちょっと開発かじって github とかから入手を試みた事有る人なら ○○.md5 という正当性確認用ファイルがくっついてるの見た事有るんじゃないかな?🤔
まずはそれを作ろうと思う🤤
github だと md5 しか無いのが多いかな?🤔
有っても SHA-1 だと思うけど今主流trendが何になってるか分からぬぃ😞

正当性確認に md5 や sha1 が使われてきたが今は何を使うのが最適?

md5 と sha1 を検索しただけじゃん😞
Chat-GPT ならもう少し違ったかもしれないけど権利が無いので試せない🙄

ハッシュ コードによるデータの整合性の保証
https://learn.microsoft.com/ja-jp/dotnet/standard/security/ensuring-data-integrity-with-hash-codes

SHA256 と有るので SHA-2 の話かな🤤

暗号アルゴリズム「SHA-1」の廃止を発表、NIST
https://news.mynavi.jp/techplus/article/20221219-2540657/

SHA-1 は Web の証明書関連でも廃止対応が進んでいてこれを使うのは不適当かな😑
そういう意味では md5 を使い続けるのもどうなの?って思うけど🙄
md5 を許すなら CRC で良くね?とか言う人居そうだけどだいぶ極論だなと思う😞流石に1Byteは…


SHA-3

どうやら検索語をチョイチョイ変えて調べると SHA-3 が最新っぽい🤔
で、それはどうやって作るのん?🤤

………

SHA2-256/512 までは出てくるけど SHA3 になると途端に情報が出てこない…😞

opensslコマンドでsha256やmd5のハッシュ値を求める
https://blog.kapiecii.com/posts/2021/04/23/openssl-command-and-hash/

大正義 OpenSSL 🙄
これOpenSSLで行くしかないか…🤤

………😞
そもそも今のバージョンMonterey 12.6.xの OpenSSL だと SHA-3 に対応してない件に関して🙄
OpenSSL を上げても良いんだけど brew で最新取ってきて環境変数の参照先をそこに書き換える、という操作が要るのでまぁ今回は SHA2-512 でもいいやってなった🤪


梱包(実施)

コマンドはこんなとこで良いかな🤔
何か役に立つか判らないけど一応コードを載せとくお🤤

# ハッシュ md5,sha2-512
VAR=projectItemRenamer.jsx;openssl md5 ${VAR}>${VAR}.md5;openssl sha512 ${VAR}>${VAR}.sha2
VAR=projectItemRenamer.html;openssl md5 ${VAR}>${VAR}.md5;openssl sha512 ${VAR}>${VAR}.sha2

# シンボリック
VAR=projectItemRenamer;DN=${VAR}_nm;mkdir -p ${DN};pushd ${DN} $1>/dev/null;find ../${VAR}.jsx* -type f -print | xargs -I{} basename {} | xargs -I{} ln -s ../{} {};popd $1>/dev/null
VAR=projectItemRenamer;DN=${VAR}_im;mkdir -p ${DN};pushd ${DN} $1>/dev/null;find ../${VAR}.jsx* -type f -print | xargs -I{} basename {} | xargs -I{} ln -s ../{} {};popd $1>/dev/null
VAR=projectItemRenamer;DN=${VAR}_im;mkdir -p ${DN};pushd ${DN} $1>/dev/null;find ../${VAR}.html* -type f -print | xargs -I{} basename {} | xargs -I{} ln -s ../{} {};popd $1>/dev/null

# アーカイブ
VAR=projectItemRenamer;DN=${VAR}_nm;zip -9r ${DN}.zip ${DN} -x "*.DS_Store"
VAR=projectItemRenamer;DN=${VAR}_im;zip -9r ${DN}.zip ${DN} -x "*.DS_Store"

# アーカイブのハッシュ md5,sha2-512
find projectItemRenamer_*.zip -type f -print | xargs -I{} bash -c 'openssl md5 {}>{}.md5;openssl sha512 {}>{}.sha2;'

find の type オプションは無くてもこの場合通るけど念の為😑


次回は

アップ先の準備するぽ🤤

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