2016-05-09 1 views
1

こんにちは私はBBAESを使用して自分のコードを暗号化して解読しています。しかし、このようなエラーが出ています。AESは、キーサイズに関係なく16バイトの固定サイズを持つ必要があります

encryptedData=[bb encryptedDataFromData:[bb dataFromString:_secret encoding:BBAESDataEncodingBase64] IV:[bb dataFromString:iv encoding:BBAESDataEncodingBase64] key:hashKeyData options:BBAESEncryptionOptionsIncludeIV]; 

そして、私のエラーは、私を助けてくださいこれは私が私のhashKeyData

hashKeyData=[bb keyByHashingPassword:_key keySize:BBAESSaltDefaultLength]; 

を作成する方法です

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'AES must have a fixed IV size of 16-bytes regardless key size.' 

です。

[bb dataFromString:iv encoding:BBAESDataEncodingBase64] 

を呼び出すことによって おかげ

答えて

0

あなたはIVデータにあなたのiv文字列を変換しているがこれは例外を得ている理由であるivに応じて、あなたより多くても少なくても16のバイトを与えるだろう。

使用する機能は、IVFromString:です。これはMD5ハッシュを使用して16バイトのNSDataインスタンスを作成します。

encryptedData=[bb encryptedDataFromData:[bb dataFromString:_secret encoding:BBAESDataEncodingBase64] IV:[bb IVString:iv] key:hashKeyData options:BBAESEncryptionOptionsIncludeIV]; 
+0

こんにちはお返事をお寄せいただきありがとうございますが,,しかし、今、このようなエラーを取得イム***「NSInvalidArgumentException」、理由によりキャッチされない例外にアプリを終了:「 - [BBAES IVFromString:]:認識されていないセレクタは、インスタンス0x1366c6da0に送信しました' 何故ですか? – user1960169

関連する問題