CommonCrypto больше не является частью iPhone SDK - Где еще я могу легко получить функцию MD5?

Лучшее, которое я нашел, org.apache.xbean.classloader. JarFileClassLoader, который является частью проект XBean.

Вот сокращенный метод, который я раньше в прошлом создавал загрузчик класса из всех библиотечных файлов в определенном каталоге

public void initialize(String libDir) throws Exception {
    File dependencyDirectory = new File(libDir);
    File[] files = dependencyDirectory.listFiles();
    ArrayList urls = new ArrayList();
    for (int i = 0; i < files.length; i++) {
        if (files[i].getName().endsWith(".jar")) {
        urls.add(files[i].toURL());
        //urls.add(files[i].toURI().toURL());
        }
    }
    classLoader = new JarFileClassLoader("Scheduler CL" + System.currentTimeMillis(), 
        urls.toArray(new URL[urls.size()]), 
        GFClassLoader.class.getClassLoader());
}

Затем, чтобы использовать classloader, просто сделать:

classLoader.loadClass(name);

18
задан Jasarien 4 December 2009 в 17:14
поделиться

1 ответ

Вы уверены, что его нет в комплекте? У меня есть приложения, скомпилированные на устройстве для версии 3.0 с использованием следующего кода, который работает:

#import <CommonCrypto/CommonDigest.h>

#define CC_MD5_DIGEST_LENGTH 16   /* digest length in bytes */

- (NSString *)md5:(NSString *)str { 
    const char *cStr = [str UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH]; 
    CC_MD5(cStr, strlen(cStr), result); 
    return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",         
            result[0], result[1], result[2], result[3],
            result[4], result[5], result[6], result[7],
            result[8], result[9], result[10], result[11],
            result[12], result[13], result[14], result[15]];    
}
22
ответ дан 30 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: