源码下载地址:
https://download.csdn.net/download/qq_31806069/11483855
1、 sha1
// sha1
printf("\r\nHello test mbedtls sha1 !\r\n");
mbedtls_sha1_context sha1_ctx;
mbedtls_sha1_init( &sha1_ctx );
mbedtls_sha1_starts( &sha1_ctx );
mbedtls_sha1_update( &sha1_ctx, encrypt, strlen((char *)encrypt) );
mbedtls_sha1_finish( &sha1_ctx, decrypt);
printf("input_data:%s \r\nsha1 value:\r\n", encrypt);
mbedtls_sha1_free( &sha1_ctx );
for (i = 0; i<20; i++)
{
printf("%02x", decrypt[i] );
}
2、 sha256/224
// sha256/224
printf("\r\n\r\n\r\nHello test mbedtls sha256/224 !\r\n");
mbedtls_sha256_context sha256_ctx;
mbedtls_sha256_init( &sha256_ctx );
mbedtls_sha256_starts( &sha256_ctx,0 ); // 0 - sha256 1 - sha224
mbedtls_sha256_update( &sha256_ctx, encrypt, strlen((char *)encrypt) );
mbedtls_sha256_finish( &sha256_ctx, decrypt);
printf("input_dataY:%s\r\nsha256 value:\r\n", encrypt);
mbedtls_sha256_free( &sha256_ctx );
for (i = 0; i<32; i++)
{
printf("%02x", decrypt[i] );
}
3、 AES ecb
int i;
mbedtls_aes_context aes_ctx;
//秘银数值
unsigned char key[16] = "ECBPASSWD1234";
//明文空间
unsigned char plain[16] = "ZhangShiSan!!";
//解密后明文的空间
unsigned char dec_plain[16]={0};
//密文空间
unsigned char cipher[16]={0};
mbedtls_aes_init( &aes_ctx );
//设置加密秘银
mbedtls_aes_setkey_enc( &aes_ctx, key, 128);
printf("\r\n\r\n\r\nAES ECB:\r\n Before Encryption: %s\r\n", plain);
mbedtls_aes_crypt_ecb( &aes_ctx, MBEDTLS_AES_ENCRYPT, plain, cipher);
printf("After encryption:\r\n");
for (i = 0; i<16; i++)
{
printf("%c", cipher[i] );
}
printf(" -End\r\n");
//设置解密秘银
mbedtls_aes_setkey_dec(&aes_ctx, key, 128);
mbedtls_aes_crypt_ecb( &aes_ctx, MBEDTLS_AES_DECRYPT, cipher, dec_plain );
printf("After Decrypt: %s\r\n", dec_plain);
mbedtls_aes_free( &aes_ctx );
4、 AES cbc
int i;
mbedtls_aes_context aes_ctx;
//秘银数值
unsigned char key[16] = "CBCPASSWD1234";
//iv
unsigned char iv[16];
//明文空间
unsigned char plain[64] = "ZhangShiSan!!ZhangShiSan!!ZhangShiSan!!ZhangShiSan!!";
//解密后明文的空间
unsigned char dec_plain[64]={0};
//密文空间
unsigned char cipher[64]={0};
mbedtls_aes_init( &aes_ctx );
//设置加密秘银
printf("\r\n\r\n\r\nAES CBC:\r\nBefore Encryption: %s\r\n", plain);
mbedtls_aes_setkey_enc( &aes_ctx, key, 128);
for(i = 0; i < 16; i++)
{
iv[i] = 0x01;
}
mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_ENCRYPT, 64, iv, plain, cipher);
printf("After encryption:");
for (i = 0; i<64; i++)
{
printf("%c", cipher[i] );
}
printf(" -End\r\n");
//设置解密秘银
mbedtls_aes_setkey_dec(&aes_ctx, key, 128);
for(i = 0; i < 16; i++)
{
iv[i] = 0x01;
}
mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_DECRYPT, 64, iv, cipher, dec_plain);
printf("After Decrypt %s\r\n", dec_plain);
printf("\r\n");
mbedtls_aes_free( &aes_ctx );
效果:
image.png
网友评论