ソフトウェア開発者として、私は常にセキュリティとユーザビリティの交差点に魅了されてきました。最近、私は Go を使用してコマンドライン パスワード マネージャーを作成するというエキサイティングなプロジェクトに着手することにしました。最初のコミットから、この旅の始まりを皆さんと共有したいと思います。
2023 年 11 月 27 日に、私は自分のプロジェクトに最初のコミットを行いました。このプロジェクトに「dost」(パスワード管理の役に立つ仲間としての役割を反映したヒンディー語の友人) と名付けました。この最初のステップは小さいものですが、堅牢でユーザーフレンドリーなツールになることを期待しているものの基礎を築きます。
このプロジェクトに着手する際、私は人気のあるコマンドライン パスワード マネージャー パスからインスピレーションを得ました。 pass のシンプルさと有効性に私の注意を引き、Go で独自のパスワード マネージャーを構築するための青写真としてその API を使用することにしました。
パスのソースコードに飛び込むのは、目を見張るような経験でした。私は、この広く使用されているツールの機能全体が 1 つの包括的な Bash スクリプトにカプセル化されていることを発見して興味をそそられました。このエレガントなシンプルさは私が賞賛しており、Go の長所を利用しながらも、自分のプロジェクトで真似したいと考えています。
パスを勉強することで、コマンドライン パスワード マネージャーの重要な機能と、それが提供すべきユーザー エクスペリエンスについて貴重な洞察を得ることができました。 「dost」の開発を続ける際には、これらの教訓を念頭に置き、パスのシンプルさと、Go のパフォーマンスおよびクロスプラットフォーム互換性の利点を組み合わせたツールの作成を目指します。
この調査は、実装する機能のロードマップを提供しただけでなく、よく作られた焦点を絞ったツールの力に対する私の信念を強化しました。このインスピレーションが今後の開発段階で「dost」の進化をどのように形作るのか楽しみです。
最初のコミットは 2 つのコア機能に焦点を当てました:
パスワード生成: ユーザーが希望するパスワードの長さを指定できる基本的なパスワード生成機能を実装しました。この機能は、さまざまなセキュリティ要件に合わせた強力なランダム化されたパスワードを作成することを目的としています。
クリップボードの統合: ユーザー エクスペリエンスを向上させるために、生成されたパスワードがクリップボードに自動的にコピーされるようにしました。この小さいながらも重要な機能により、時間が節約され、転記エラーのリスクが軽減されます。
この最初のイテレーションの技術的側面のいくつかを詳しく見てみましょう:
実装の重要な部分をいくつか見てみましょう:
func generatePassword(length int) (string, error) { const ( uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" lowercaseLetters = "abcdefghijklmnopqrstuvwxyz" digits = "0123456789" specialChars = "!@#$%^&*()-_= []{}|;:'\",./?" ) allChars := uppercaseLetters lowercaseLetters digits specialChars var password string for i := 0; iこの関数は、事前定義されたセットから文字をランダムに選択して、大文字、小文字、数字、特殊文字を確実に組み合わせてパスワードを作成します。
- クリップボードの統合:
func writeToClipboard(text string) error { return clipboard.WriteAll(text) }この単純な関数は、クリップボード パッケージを利用して、生成されたパスワードをシステム クリップボードに書き込みます。
- メイン関数:
func main() { passwordLength := flag.Int("length", 12, "length of your password") flag.Parse() password, err1 := generatePassword(*passwordLength) if err1 != nil { fmt.Println("Error generating password:", err1) return } fmt.Println("Generated Password:", password) err2 := writeToClipboard(password) if err2 != nil { fmt.Println("Error writing to clipboard:", err2) os.Exit(1) } fmt.Println("Copied to clipboard! ✅\n") }メイン関数はすべてを結び付けます。 Go のフラグ パッケージを使用して、ユーザーがパスワードの長さを指定し、パスワードを生成してクリップボードにコピーできるようにします。
コマンドラインインターフェース
メイン関数でわかるように、Go の flag パッケージを使用して簡単な CLI を実装しました。ユーザーは、-length フラグを使用して希望のパスワードの長さを指定できます。指定しない場合、デフォルトは 12 文字です。
将来に向けて
この最初のコミットは始まりにすぎません。このパスワード マネージャーの開発を続ける中で、次のような機能を追加する予定です。
今後の旅とそれがもたらす挑戦に興奮しています。パスワード マネージャーの構築はコーディングだけではありません。それは、セキュリティ原則、ユーザーのニーズを理解し、機密情報を信頼して扱うことができるツールを作成することです。
このプロジェクトの進展に合わせてさらなる最新情報をお知らせしますので、ご期待ください。その過程での私の進歩、課題、学びを共有していきます。フォローしたり貢献したりすることに興味がある場合は、お気軽に GitHub でプロジェクトをチェックしてください。
dost は Go で書かれた CLI パスワード マネージャーです。
(パス)[https://www.passwordstore.org/]
からインスピレーションを得ました> go build -o dost main.go
パスワードを生成しています:
> ./dost generate email/[email protected] Generated Password: );XE,7-Dv?)Aa &
指定した長さのパスワードを生成しています (デフォルトは 25):
> ./dost generate email/[email protected] 12 Generated Password: si
生成されたパスワードを印刷せずにクリップボードにコピーします:
> ./dost generate -c email/[email protected] Copied to clipboard! ✅
パスワード生成に記号を使用しない:
> ./dost generate -n email/[email protected] Generated Password: E2UST}^{Ac[Fb&D|cD%;Eij>H
ミット
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3