アップルのCommonCryptoライブラリの参考資料を探しています.Appleには明確なリンクがないため、Googleが提供するものは古くなっています(iOS CommonCryptoリファレンス
)。これに関するヒントはありますか?たくさんの暗号化機能を持つアプリケーションを開発するのに使える、より優れたライブラリがありますか?
ありがとうございました。
アップルのCommonCryptoライブラリの参考資料を探しています.Appleには明確なリンクがないため、Googleが提供するものは古くなっています(iOS CommonCryptoリファレンス
)。これに関するヒントはありますか?たくさんの暗号化機能を持つアプリケーションを開発するのに使える、より優れたライブラリがありますか?
ありがとうございました。
彼らが提供するほとんどの情報は、ヘッダーファイルの開始行にあります。コマンドキーボードボタンを押したまま、CommonCrypto/CommonCryptor.hをクリックしてアクセスします。
/*!
@header CommonCryptor.h
@abstract Generic interface for symmetric encryption.
@discussion This interface provides access to a number of symmetric
encryption algorithms. Symmetric encryption algorithms come
in two "flavors" - block ciphers, and stream ciphers. Block
ciphers process data (while both encrypting and decrypting)
in discrete chunks of data called blocks; stream ciphers
operate on arbitrary sized data.
The object declared in this interface, CCCryptor, provides
access to both block ciphers and stream ciphers with the same
API; however some options are available for block ciphers that
do not apply to stream ciphers.
The general operation of a CCCryptor is: initialize it
with raw key data and other optional fields with
CCCryptorCreate(); process input data via one or more calls to
CCCryptorUpdate(), each of which may result in output data
being written to caller-supplied memory; and obtain possible
remaining output data with CCCryptorFinal(). The CCCryptor is
disposed of via CCCryptorRelease(), or it can be reused (with
the same key data as provided to CCCryptorCreate()) by calling
CCCryptorReset().
CCCryptors can be dynamically allocated by this module, or
their memory can be allocated by the caller. See discussion for
CCCryptorCreate() and CCCryptorCreateFromData() for information
on CCCryptor allocation.
One option for block ciphers is padding, as defined in PKCS7;
when padding is enabled, the total amount of data encrypted
does not have to be an even multiple of the block size, and
the actual length of plaintext is calculated during decryption.
Another option for block ciphers is Cipher Block Chaining, known
as CBC mode. When using CBC mode, an Initialization Vector (IV)
is provided along with the key when starting an encrypt
or decrypt operation. If CBC mode is selected and no IV is
provided, an IV of all zeroes will be used.
CCCryptor also implements block bufferring, so that individual
calls to CCCryptorUpdate() do not have to provide data whose
length is aligned to the block size. (If padding is disabled,
encrypting with block ciphers does require that the *total*
length of data input to CCCryptorUpdate() call(s) be aligned
to the block size.)
A given CCCryptor can only be used by one thread at a time;
multiple threads can use safely different CCCryptors at the
same time.
*/
答えをありがとう! – anavarroma
Xcodeで見つけてダウンロードできるCryptoCompatibilityというサンプルプロジェクトがあります。ヘッダーファイルを見るだけではなく、そこから学ぶ方がよいでしょう。ドキュメント& APIリファレンスウィンドウでそれを探してください。
はい、私は同じ問題があります。 CommonCryptoに関する情報が見つかりませんでした – Mike
質問のリンクにはさまざまな暗号プリミティブへのリンクがあります。下から、好きなページは:CC_MD5、CC_SHA、CCHmac、CCCryptorへのリンクです。 – zaph
「たくさんの暗号化機能」を使用するには、多くの暗号化経験がありますか? – zaph