私は現在、マスター パスワードに似た独自のパスワード マネージャー アプリケーションを作成しようとしています。これは、アルゴリズムを使用してパスワードを生成するため、クライアント コンピューターやオンラインに保存する必要がありません。
これを実現するために、 CryptoSwiftライブラリを使用した ChaCha20 暗号アルゴリズムを使用することにしました。これが私が現時点で持っているコードです(OS Xアプリケーション):
import Cocoa
import CryptoSwift
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
func applicationDidFinishLaunching(aNotification: NSNotification) {
do
{
let UInt8String = "Test".utf8
print("UTF8 string: \(UInt8String)")
let UInt8Array = Array(UInt8String)
print("UTF8 array: \(UInt8Array)")
let encrypted = try ChaCha20(key: "Key", iv: "Iv")!.encrypt(UInt8Array)
print("Encrypted data: \(encrypted)")
} catch _ {
}
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
エラーが発生している行はlet encrypted = try ChaCha20(key: "Key", iv: "Iv")!.encrypt(UInt8Array)
. 私が得ているエラーは、「致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました」です。これはおそらく「!」が原因です。他のすべてがその前に機能するため、暗号化メソッドの前に。「!」を置き換えてみました ただし、「!」を削除すると、変数encrypted
は nil に等しくなります。また '?' 全体として、構文エラーが発生します。
let encrypted = try ChaCha20(key: "Key", iv: "Iv")!.encrypt(UInt8Array)
回線の問題をどのように修正しますか?