题目:

思路:
不会做,身为研究生不知道RSA加密算法正常吗?
然后就是这些题太难了

看看什么是RSA吧

import java.math.BigInteger;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;public class RSA解密 {//n以内的质数public static int[] neibuzhishu(int n){int[] houxuan = new int[300];int m=0;for(int i=2;i<n;i++){//数if (panduan(i)){houxuan[m++]=i;}}houxuan[m] =-10000;return houxuan;}//质数public static boolean panduan(int n){//判断2-n-1是否有可以约的数字for(int i=2;i<=n-1;i++){if(n%i==0){return false;}}return true;}//判断互质y>xpublic static boolean huzhi(int x,int y){for(int i =2;i<x-1;i++){if(x%i==0 && y%i ==0){return false;}}return true;}//余数为1//判断真实长度public static int zhenshiLength(int[] a){for(int i=0;i<a.length;i++){if(a[i]==-10000){int m = i-1;return m;}}return a.length;}//判断map相同对public static Map<Integer,Integer> delSame(Map<Integer,Integer> map){//同样的for each写法for (Map.Entry<Integer, Integer> entry: map.entrySet()) {int key = entry.getKey();int value = entry.getValue();for (Map.Entry<Integer,Integer> entry1:map.entrySet()){int key1 = entry1.getKey();int value1 = entry1.getValue();if(key== value1){map.remove(key1,value1);}break;}}return map;}//相乘等于npublic static Map<Integer, Integer> mapN(int[] neibuzhishu, int n){//int[] neibuzhishu2 =new int[50];//成对存在的所以用字典Map<Integer, Integer> neibuzhishu2 = new HashMap<>();//真实长度int len = zhenshiLength(neibuzhishu);System.out.println("真实长度"+len);for(int i=0;i<len/2;i++){for(int j=0;j<len/2;j++){if(neibuzhishu[i]*neibuzhishu[j]==n && !neibuzhishu2.containsKey(neibuzhishu[i])){neibuzhishu2.put(neibuzhishu[i],neibuzhishu[j]);}}}Map<Integer, Integer> neibuzhishu3 = delSame(neibuzhishu2);return neibuzhishu3;}//求逆运算,多个public static int[] gcd(int a, int b) {int ans;int[] result = new int[3];if (b == 0) {result[0] = a;result[1] = 1;result[2] = 0;return result;}int[] temp = gcd(b, a % b);ans = temp[0];result[0] = ans;result[1] = temp[2];result[2] = temp[1] - (a / b) * temp[2];return result;}public static int qpow(int a, int b,int n) {int ans = 1;while (b > 0) {if (b % 2 == 1)ans = qmul(ans, a,n);a = qmul(a, a,n);b /= 2;}return ans;}public static int qmul(int a, int b,int n) {int ans = 0;while (b > 0) {if (b % 2 == 1) {ans += a;ans %= n;}a *= 2;a %= n;b /= 2;}return ans;}//public static void maybe(int C,int d,int n){//求maybe,未知,所有可能的X//int mayb < Math.pow(n,3) ; 条件1int[] mayb = new int[50];int num=0;for(int x=0;x<n;x++){if(Math.pow(x,3)%n==C){mayb[num++]=x;}}for(int i=0;i<mayb.length;i++){System.out.println(mayb[i]);}//有一些数,这些数,进行筛选--//找到小于n的所有质数int[] neibuzhishu = neibuzhishu(n);//内部所有质数//1.这些数可以有两个质数相乘==nMap<Integer, Integer> mapn = mapN(neibuzhishu, n);//2.找到可能的p*q==n//3.d与p-1,q-1互制Set<Integer> Nmap = mapn.keySet();for (Integer mpn: Nmap) {//pInteger value = mapn.get(mpn);//q//System.out.println(mpn + "=" + value);int p_1 = mpn-1;int q_1 = value-1;if(!(huzhi(d,p_1) && huzhi(d,q_1))){//不是互为质数//删除mapn.remove(mpn,value);}}//System.out.println(mapn);//求逆运算int p=0,p_1=0;int q=0,q_1=0;for (Integer mpn: Nmap) {//pInteger value = mapn.get(mpn);//q//System.out.println(mpn + "=" + value);p_1 = mpn-1;q_1 = value-1;p = mpn;q = value;}int m = (p-1)*(q-1);//System.out.println(m);int[] ans = gcd(d,m);for(int i=0;i<ans.length;i++){//System.out.println(ans[i]);}ans[1] = (ans[1] + m) % m;//System.out.println(ans[1]);//int x =qpow(C, ans[1],n);//System.out.println(x);}public static void main(String[] args) {//加密前int X;//加密后int C = 19;//dint d = 3;//乘数积 n//BigInteger a=BigInteger.valueOf(); //第二种,参数可以是int、longint n;n = 55;//余数1eint e;maybe(C,d,n);//写出宇哥函数,求能余出c的有可能的数}
}

蓝桥杯习题-2019 第十届-研究生组-RSA加密-java相关推荐

  1. java蓝桥杯省赛第十届_2019年第十届蓝桥杯省赛-迷宫(BFS/Excel大法)

    这题用dfs搜不出来,需要使用bfs并记录路径,设置好方向顺序跑就ok 然而毕竟是暴力杯,我们的原则是代码能省就省(懒癌晚期 于是乎网上便出现了形形色色的题解,笔者综合了各路大神神乎其技的思想,总结出 ...

  2. [蓝桥杯解题报告]第十届蓝桥杯大赛省赛(软件类)真题C++A组 Apare_xzc

    蓝桥杯第十届省赛软件类C++A组解题报告 Apare_xzc 2020/2/13 考生须知 A. 平方和(5分) 分析: 这个题就是简单的模拟.只要循环一遍,判断每个数是否含有2019,然后平方相加即 ...

  3. 【蓝桥杯】回顾第十、十一届一些略有难度但可以拿下的题

    [蓝桥杯]回顾第十届C/C++B组.第十一届Python组那些略有难度但可以拿下的题 试题 A: 组队(第十届) 试题 E: 迷宫(第十届) 试题 C: 跑步锻炼(第十一届) 试题 G: 单词分析(第 ...

  4. 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解

    ============================== 2019-2021蓝桥杯C++ C组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解 2020第十一届蓝桥杯大赛软件类省 ...

  5. 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解

    ========================================== 2019-2021蓝桥杯C++ B组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解 2020第 ...

  6. 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)

    2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...

  7. 糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) Apare_xzc

    糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) xzc 2019/4/5 试题 I: 糖果 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25分 [问题描述]    ...

  8. 2019 第十届蓝桥杯省赛C/C++大学B组 试题+题解

    第十届蓝桥杯省赛C/C++大学B组 试题+题解 第十届蓝桥杯大赛软件类省赛 C/C++ 大学 B 组 考生须知 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试 题. 考试时间为 4 ...

  9. 2019 第十届蓝桥杯大赛软件类省赛 C/C++ 大学 A 组 【部分题解】

    声明: 这些的答案不是官方答案,都是我自己做的,仅供参考.一起加油 试题 A: 平方和 本题总分:5′5 '5′ [问题描述] 小明对数位中含有 2.0.1.92. 0. 1. 92.0.1.9 的数 ...

最新文章

  1. Jquery中绑定select的change事件自动填充input的value值
  2. 离线语音AIOT可能成为智能家居应用的新趋势
  3. 精通Android开发 1
  4. 信道效率以及信道的吞吐率
  5. php变量教学,PHP变量详解
  6. poj2385 基础的动态规划算法 挑战程序设计竞赛
  7. SpringBoot2 整合JTA组件,多数据源事务管理
  8. 【机器学习】Andrew Ng——01概述
  9. android --------学习流程图
  10. windows 下 新建 点开头的文件和文件夹
  11. Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)
  12. 中兴c600olt数据配置_中兴OLT业务配置
  13. 分布式数据库中间件—TDDL
  14. 艾盟赢销浅谈:CRM的本质和它的未来十年
  15. Uncaught SyntaxError The requested module ‘node_modules.vitevue.jsv=bd1817bb‘ does not provide
  16. Overture教程之五线谱介绍
  17. 猪八戒java开发,猪八戒--Java开发
  18. “智多星”手机销售网
  19. 【C# Opencv机器视觉】 Opencv水位检测、液体高度检测、卡尺高度检测
  20. 上海国际能源交易中心大户持仓报告制度 操作指南

热门文章

  1. IDEA开启远程dubug模式
  2. 2020 中国软件 100 强,腾讯第二、阿里第三,第一是谁呢?你们公司上榜了吗?
  3. 编程计算下面的分段函数: y=e​√​x​​​​​−1 (0<x<1) y=|x|+2 (3≤x≤4) y=sin(x​2​​) (当x取其他值时)
  4. 钜大锂电池并联串联知识详解 并联串联注意事项18650
  5. ios ReplayKit RPScreenRecorder获取屏幕录制的每一帧数据startCaptureWithHandler
  6. 怎么安装python3.7.3_Python 3.7.0安装教程(附安装包) | 我爱分享网
  7. 最常去的IT网站(技术类,资讯类,个人博客)
  8. 即将上演的5G测量仪器大战
  9. 计算机监控系统功能概述,物联网技术在计算机监控系统的应用
  10. 如何制作渐变色二维码