我正在开发一个simple GUI application来计算文件的哈希值。它使用CommonCrypto库进行哈希和algorythms。因此,我用来计算SHA1或MD5哈希的代码是完全相同的,除了我在所述库中使用的元素:常量,函数和结构。当然,我可以编写更多通用代码,接受常量作为值和&函数指针,但是我如何处理每种类型的散列不同的自定义结构?
例如,当我计算MD5哈希时,我有这个:
CC_MD5_CTX md5;
CC_MD5_Init(&md5);
当我计算SHA1哈希时,我有这个:
CC_SHA1_CTX sha1;
CC_SHA1_Init(&sha1);
如何将其转换为仅将CC_HASH_CTX作为参数的一段代码?
P.S。:尽管该应用程序是用Objective C for Mac编写的,但我认为这个问题并不特定,所以我只是用C标记它。