1代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bn.h>

int main()
{
        BN_CTX *r[3];
        BIGNUM *a;
        BIGNUM *b;
        BIGNUM *c;
        char s[512+1] = "2";
        char t[512+1] = "4bd";
        char *x;
        r[0] = BN_CTX_new();
        a = BN_new();
        b = BN_new();
        c = BN_new();
        BN_hex2bn(&a, s);
        BN_hex2bn(&b, t);
        BN_exp(c, a, b, r[0]);//r=pow(a,b)
        x = BN_bn2dec(c);
        puts(x);
        BN_free(a);
        BN_free(b);
        BN_free(c);
        BN_CTX_free(r[0]);
        free(x);
        return 0;
}

2.代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bn.h>
 
int main()
{
        BN_CTX *r[11];
        BIGNUM *bn[12];
        int i;
        const  char s[11][9]={"20191203","20191204","20191205","20191206","20191207","20191208","20191209","20191210","20191211","20191212","20191213"};
        char* out;
        char t[2]="1";
        for(i=0;i<11;i++){
        bn[i]=BN_new();
        BN_dec2bn(&bn[i],s[i]);
            r[i] = BN_CTX_new();   
        }
        bn[11]=BN_new();
        BN_dec2bn(&bn[11],t);
 
        for(i=0;i<11;i++){
            BN_mul(bn[11],bn[11],bn[i],r[i]); 
        }
 
        out= BN_bn2dec(bn[11]); 
 
        puts(out);//打印出字符串
 
 
        for(i=0;i<11;i++){
    BN_free(bn[i]);
                  BN_CTX_free(r[i]);
     
        }
    BN_free(bn[i]);
 
        free(out);
 
        return 0;
}

 

结果均与上次gmb测试一致

 

 

 

 验证正确

 

posted on 2022-05-12 14:27  20191208孙汇阳  阅读(30)  评论(0编辑  收藏  举报