zoukankan      html  css  js  c++  java
  • C语言实现的RSA算法程序(使用GMP)

    这个程序使用了GMP包,所以程序比较简洁,并且几乎不论多大的整数都可以计算。

    代码来自rosettacode.orgRSA code

    C语言程序如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <gmp.h>
     
    int main(void)
    {
        mpz_t n, d, e, pt, ct;
     
        mpz_init(pt);
        mpz_init(ct);
        mpz_init_set_str(n, "9516311845790656153499716760847001433441357", 10);
        mpz_init_set_str(e, "65537", 10);
        mpz_init_set_str(d, "5617843187844953170308463622230283376298685", 10);
     
        const char *plaintext = "Rossetta Code";
        mpz_import(pt, strlen(plaintext), 1, 1, 0, 0, plaintext);
     
        if (mpz_cmp(pt, n) > 0)
            abort();
     
        mpz_powm(ct, pt, e, n);
        gmp_printf("Encoded:   %Zd
    ", ct);
     
        mpz_powm(pt, ct, d, n);
        gmp_printf("Decoded:   %Zd
    ", pt);
     
        char buffer[64];
        mpz_export(buffer, NULL, 1, 1, 0, 0, pt);
        printf("As String: %s
    ", buffer);
     
        mpz_clears(pt, ct, n, e, d, NULL);
        return 0;
    }


  • 相关阅读:
    3.7日复习
    作业
    小米官网需要的数据
    EL&JSTL
    变量和运算符
    jsp
    session的应用----验证码
    restframework-总结
    Django-Rest-Framework部分源码流程分析
    Django-Rest-Framework
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564847.html
Copyright © 2011-2022 走看看