首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS CommonCrypto参考

iOS CommonCrypto参考
EN

Stack Overflow用户
提问于 2013-05-17 14:32:59
回答 2查看 9.6K关注 0票数 7

我正在尝试为苹果的CommonCrypto库找一些参考资料,因为显然苹果没有任何明显的链接,而谷歌提供的链接已经过时了,就像下面这个:

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/Common%20Crypto.3cc.html

对此有什么提示吗?有没有更好的库可以用来开发一个有很多加密功能的应用程序?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 08:31:44

它们提供的大多数信息都在头文件的开始行中。按住Command键盘按钮并单击CommonCrypto/CommonCryptor.h以访问它。

代码语言:javascript
复制
/*!
@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.              
*/
票数 4
EN

Stack Overflow用户

发布于 2014-11-23 02:11:27

有一个名为CryptoCompatibility的很好的示例项目,您可以通过Xcode找到并下载它。从它中学习要比仅仅通过查看头文件更好。只需在文档和API参考窗口中搜索它即可。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16602883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档