首页 > 其他分享 >OpenSSL测试-大数

OpenSSL测试-大数

时间:2023-04-11 22:01:00浏览次数:30  
标签:11 大数 bn OpenSSL free 测试 new include BN

任务详情
在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
基于OpenSSL的大数库计算2的N次方,N为你学号的后四位(5‘)
基于OpenSSL的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)
用Python或bc命令验证计算的正确性(5’)
提交代码(或代码链接)和运行结果截图
任务过程

  1. 计算2的1212次方
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bn.h>
//20201205
int main()
{
        BN_CTX *r[3];
        BIGNUM *a;
        BIGNUM *b;
        BIGNUM *c;
        char s[512+1] = "2";
        char t[512+1] = "4b5"; //1205
	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;
}

结果:

验证:

  1. 计算你以及前面5位同学和后面5位同学的8位学号的乘积
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bn.h>
//20201205
int main()
{
    BN_CTX *r[11];
    BIGNUM *bn[12];
    int i;
    const char s[11][9] = {"20201200", "20201201", "20201202", "20201203", "20201204", "20201205", "20201206", "20201207", "20201208", "20201209", "20201210"};
    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;
}

结果:


验证:

标签:11,大数,bn,OpenSSL,free,测试,new,include,BN
From: https://www.cnblogs.com/gtgtgt/p/17307917.html

相关文章

  • 使用RunnerGo做接口性能、接口自动化测试
    最近在gitee上看见一款获得GVP(最有价值开源项目)的测试平台RunnerGo,看他们官网介绍包含了接口测试、性能测试、自动化测试。知道他们有saas版可以试用,果断使用了一下,对其中场景管理和性能测试印象深刻,之后也在公司自己安装使用,接下来和大家介绍一下RunnerGo的整体使用情况。登录后的......
  • 软件测试综合面试题
    项目中会对接第三方系统吗,哪些系统在项目中对接第三方系统是非常常见的。常见的对接的第三方系统包括但不限于以下几种:1.支付系统:例如支付宝、微信支付、银联支付等。如果项目需要接入支付功能,就需要对接相应的支付系统。2.物流系统:例如顺丰、圆通、中通等。如果项目中需要使......
  • 安全测试前置实践1-白盒&黑盒扫描
    作者:京东物流 陈维一、引言G.J.Myers在《软件测试的艺术》中提出:从心理学角度来说,测试是一个为了寻找错误而运行程序的过程。那么安全测试则是一个寻找系统潜在安全问题的过程,通过测试手段发现系统中可能存在的安全问题和风险,分析并进行优化,保障系统的安全质量。从应用安全维......
  • 【性能测试】04测试分析及调优
    本文通过编写性能测试分析及调优的相关流程和方法,帮助研发人员、性能测试人员或者运维人员快速地进行性能测试、瓶颈定位及调优。系统的性能是由很多因素决定的,很难面面俱到,但是可以作为分析系统性能的一个指导。适用对象和范围适用于需要进行性能分析及调优的工作。预期读者......
  • ASN.1 基础测试
    1参考https://www.cnblogs.com/rocedu/p/14891816.html#echo打印字符串和变量值2十六进制数:30030201AA,写入文件1.der,用od查看内容,用asn1view或opensslasn1pars命令查看内容,提交截图3十六进制数:3013020105160e416e79626f64792074686572653f,写......
  • 北上广测试工程师月薪20K往上,该如何做,需要会什么技能?
    ​有人回答说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。 还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟......
  • OpenSSL测试-大数
    在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务基于OpenSSL的大数库计算2的N次方,N为你学号的后四位(5‘)基于OpenSSL的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)用Python或bc命令验证计算的正确性(5’)提交代码(或代码链接)和运行......
  • 2023.04.11 定时测试随笔 T1
    T1数列分段SectionII传送门:洛谷P1182题意:把\(n\)个数分成\(m\)段,使\(m\)段和的最大值最小,求这个值;题解:因为题目要求最大值的最小值,很明显的一道二分答案的板子题,我们二分这个最大值,因为是区间和,我们用前缀和来维护,二分区间就是[\(sum[1]\),\(sum[n]\)]:......
  • 关于QMetaObject::invokeMethod的测试
    此函数可以用来在子线程中委托主线程执行特定函数。QMetaObject::invokeMethod默认在主线程中执行函数,除非指定连接方式为Qt::DirectConnection。以下是测试用的代码和输出结果。头文件:classMCcrt:publicQThread{Q_OBJECTpublic:MCcrt(QObject*parent=0):......
  • 字节跳动大数据架构面经 有用 看1
    1面试官:简单的做个自我介绍吧面试官,您好!我叫xxx,xxxx年x月毕业于xxx学校,xx学历,目前就职于xxx公司xxx部门,职位为:大数据开发工程师,主要从事于xxx组件、平台的开发工作。工作以来,我先后参加了xxx项目、xxx项目以及xxx项目,积累了丰富的项目经验,同时,这x个项目......