程序员

安卓系统应用程序纯命令行编译环境_第二个C程序md5Test.c

2019-03-11  本文已影响5人  客昂康

NDK是不含openSSL的,本日志记录了安卓系统下C程序如何使用openSSL的加密库。

#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>

int main(int argc, char* argv[]){
    unsigned char buffer[32];
    MD5_CTX ctx;
    MD5_Init(&ctx);
    
    if(argc >= 2){
        printf("str = \"%s\"\n", argv[1]);
        MD5_Update(&ctx, argv[1], strlen(argv[1]));
    }
    else{
        printf("str = \"%s\"\n", argv[0]);
        MD5_Update(&ctx, argv[0], strlen(argv[0]));
    }
    MD5_Final(buffer, &ctx);
    printf("MD5 = %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
        buffer[0],  buffer[1],  buffer[2],  buffer[3],
        buffer[4],  buffer[5],  buffer[6],  buffer[7],
        buffer[8],  buffer[9],  buffer[10], buffer[11],
        buffer[12], buffer[13], buffer[14], buffer[15]
    );
    return 0;
}

这段程序仅仅使用了openSSL加密库的MD5接口,可以计算输入字符串的MD5值。


ARG1=-ID:\Android\ndk64\sysroot\usr\include -ID:\Android\ndk64\sysroot\usr\include\arm-linux-androideabi -I. -Wall -Wno-attributes
ARG2=--sysroot=D:\Android\ndk64\platforms\android-19\arch-arm -L.\lib -lcrypto -Wall

md5Test.out : md5Test.o
    arm-linux-androideabi-gcc.exe -o md5Test.out md5Test.o $(ARG2)

md5Test.o : md5Test.c
    arm-linux-androideabi-gcc.exe -c -o md5Test.o md5Test.c $(ARG1)

cls:
    del md5Test.o
    del md5Test.out

记于2019-03-11

上一篇 下一篇

猜你喜欢

热点阅读