123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- //
- // NSString+Hash.h
- //
- #import <Foundation/Foundation.h>
- @interface NSString (Hash)
- #pragma mark --------------------
- #pragma mark - 散列函数
- /**
- * 计算MD5散列结果
- *
- * 终端测试命令:
- * @code
- * md5 -s "string"
- * @endcode
- *
- * <p>提示:随着 MD5 碰撞生成器的出现,MD5 算法不应被用于任何软件完整性检查或代码签名的用途。<p>
- *
- * @return 32个字符的MD5散列字符串
- */
- - (NSString *)md5String;
- /**
- * 计算SHA1散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha1
- * @endcode
- *
- * @return 40个字符的SHA1散列字符串
- */
- - (NSString *)sha1String;
- /**
- * 计算SHA256散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha256
- * @endcode
- *
- * @return 64个字符的SHA256散列字符串
- */
- - (NSString *)sha256String;
- /**
- * 计算SHA 512散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha512
- * @endcode
- *
- * @return 128个字符的SHA 512散列字符串
- */
- - (NSString *)sha512String;
- #pragma mark --------------------
- #pragma mark - HMAC 散列函数
- /**
- * 计算HMAC MD5散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl dgst -md5 -hmac "key"
- * @endcode
- *
- * @return 32个字符的HMAC MD5散列字符串
- */
- - (NSString *)hmacMD5StringWithKey:(NSString *)key;
- /**
- * 计算HMAC SHA1散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha1 -hmac "key"
- * @endcode
- *
- * @return 40个字符的HMAC SHA1散列字符串
- */
- - (NSString *)hmacSHA1StringWithKey:(NSString *)key;
- /**
- * 计算HMAC SHA256散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha256 -hmac "key"
- * @endcode
- *
- * @return 64个字符的HMAC SHA256散列字符串
- */
- - (NSString *)hmacSHA256StringWithKey:(NSString *)key;
- /**
- * 计算HMAC SHA512散列结果
- *
- * 终端测试命令:
- * @code
- * echo -n "string" | openssl sha -sha512 -hmac "key"
- * @endcode
- *
- * @return 128个字符的HMAC SHA512散列字符串
- */
- - (NSString *)hmacSHA512StringWithKey:(NSString *)key;
- #pragma mark --------------------
- #pragma mark - 文件散列函数
- /**
- * 计算文件的MD5散列结果
- *
- * 终端测试命令:
- * @code
- * md5 file.dat
- * @endcode
- *
- * @return 32个字符的MD5散列字符串
- */
- - (NSString *)fileMD5Hash;
- /**
- * 计算文件的SHA1散列结果
- *
- * 终端测试命令:
- * @code
- * openssl sha -sha1 file.dat
- * @endcode
- *
- * @return 40个字符的SHA1散列字符串
- */
- - (NSString *)fileSHA1Hash;
- /**
- * 计算文件的SHA256散列结果
- *
- * 终端测试命令:
- * @code
- * openssl sha -sha256 file.dat
- * @endcode
- *
- * @return 64个字符的SHA256散列字符串
- */
- - (NSString *)fileSHA256Hash;
- /**
- * 计算文件的SHA512散列结果
- *
- * 终端测试命令:
- * @code
- * openssl sha -sha512 file.dat
- * @endcode
- *
- * @return 128个字符的SHA512散列字符串
- */
- - (NSString *)fileSHA512Hash;
- @end
|