因为加密的为英文字母以及数字,所以模数选择26+10=36.
再选一个k1为一个与36互素的数字.
再任意选一个k2
求除k1在模36下的逆元k3.(欧几里得除法,代码也可实现,这里没写,直接给出)
加密为: c=(k1*m+k2)mod36
解密为: m=((c-k2)*k3)mod36
package com.jingfei.Encryptoin;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class FangShe {
//加密JIINGFEI03163079
public static final int N = 36;
public static final int K1 = 79;//79与36互素
public static final int K2 = 79;
public static final int k3 = 31;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要加密的字符串:");
String m1 =sc.nextLine();//接收输入的字符串
m1 = m1.toString().toUpperCase();//输入的小写全部变大写
System.out.println(m1);
char[] inputchars = new char[m1.length()];
for (int i =0;i<m1.length();i++){
inputchars[i]=m1.charAt(i);//将输入的字符串存到数组中
}
final char[] CHARS = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','0'
,'1','2','3','4','5','6','7','8','9'};
int[] transString = new int[m1.length()];//字符串与数组下标数字对应
for (int i = 0;i<m1.length();i++){
for (int j = 0;j<CHARS.length;j++){
if (CHARS[j]==inputchars[i]){
transString[i]=j;
}
}
}
int[] miwenNum = new int[m1.length()];//将加密后的数字存起来,解密的时候用
char[] transMiwenNum = new char[m1.length()];//将加密后的数组转化为密文字母
for (int t = 0;t<m1.length();t++){
int y = Math.floorMod((K1*transString[t]+K2),N);//加密算法
miwenNum[t]=y;
transMiwenNum[t]=CHARS[y];
}
System.out.println("加密后为:");
System.out.println(transMiwenNum);
for (int i =0;i<m1.length();i++){
miwenNum[i] = Math.floorMod(k3*(miwenNum[i]-K2),36);//将加密后的数字解密,又存在原数组中
transMiwenNum[i] = CHARS[miwenNum[i]];
//将数字当作CHARS的下标找出对应的明文字母,存到transMiwenNum数组中,为了节省空间重复用了之前定义的数组
}
System.out.println("解密后为:");
System.out.println(transMiwenNum);
}
}
请输入你要加密的字符串:
worldHELLO1234
加密后为:
R7SM2U9MM7QX4B
解密后为:
WORLDHELLO1234
Process finished with exit code 0
------------------------------------------------------------------------------
谢谢!
垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆分成多个弱耦合的服务_垂直划分和水平划分
Node 是一个让 JavaScript 运行在服务端的开发平台因为业务需求,想在自己的后台中部署 node.js 服务在此整理一下,在 Linux 系统下的 Node.js 安装指导,希望能帮到各位有需求的小伙伴..._node.js安装教程linux
转载自:《du命令》-linux命令五分钟系列之三du(disk usage),顾名思义,查看目录/文件占用空间大小#查看当前目录下的所有目录以及子目录的大小$ du -h $ du -ah#-h:用K、M、G的人性化形式显示#-a:显示目录和文件 du -h tmp du -ah tmp#只查看当前目录下的tmp目录(包含子目录)的大小#查看当前目录...
原文https://www.cnblogs.com/zishi/p/6780719.html原文链接:http://www.cnblogs.com/zishi/p/6780719.html在实际项目中写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖项又会有依赖,导致在单元测试代码里几乎无法完成构建,尤其是当依赖项尚未构建完成时会导致单元测试无法进行。为了解决这类问题我们引入了M..._mockito怎么mock service中工具类的行为
Subprocess模块Thesubprocessmodule allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules a...
高清图片网站,可做网站背景图片也可做壁纸等,缩略图,wordpress特色图片等,大部分都可以商用!分享给大家!1. PIXABAYPixabay是一个支持中文搜索的免费可商用图库。里面有很多不同类型的摄影照片,大家可以通过Pixabay去寻找自己想要的图片,简直完美解决各种场合的分辨率要求,真的是一个图片搜索神器。2. PEXELSPexels是一提供海量共享图片素材的网站Pexels可以说是图片素材界的超级网红,每周都会定量更新,照片都是有专人在众多图片中精心挑选而来的。3. GRATIS._免费又好看的图片
在用Android MediaCodec编码h264的时候,会遇到,dequeueOutputBuffer在成功获取到config帧(sps pps)及第一个I帧后,dequeueOutputBuffer然后结果一直为-1的情况, 在三星note3及小米3,小米6都是这样的,解决方案如下:关键在下面这个函数的第四个参数上,就是时间戳,这个参数一定要填写,可以类似的这么简单的算一下:..._海思 dequeueoutputbuffer -1
首先,到opencv官网上面下载opencv的安装包。由于我实在Windows环境下进行的配置,所以说下载win pack。下载完之后双击运行,出现下图所示窗口。找一个吉利的路径把他存放好(最好不要是中文路径),而后点击Extract。等待读条,读条完毕后他会生成两个文件夹和几个txt文件,如下图所示。第二步,到cmake官网上下载并安装cmake。然后打开bin文件夹下的...
uClinux的通用c库:uC-libc和uClibc的区别概述uClinux通常使用两种c库:uC-libc和uClibc.尽管它们名字近似,但有很大区别.本文是对它们不同点的快速浏览.uC-libc是uClinux的原始c 库,它基于Linux-8086 c库,该c 库是ELKs 工程的一部分,支持m68000结构.uC-libc是一个相当全面的c 库,但它的一些API是非标准的,一些通用
一般的队列只能保证作为一个有限长度的缓冲区,如果超过了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入列的任务。阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程进入wait状态,释放cpu资源阻塞队列自带阻塞和唤醒功能,不需要额外处理,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一致占用cpu资源。..._创建线程池为什么先放队列
如:SELECT NO FROM goodstype WHERE parentType = NULL ORDER BY NO DESC LIMIT 0,1语句上没错,但查询结果为空。正确的写法是这样:SELECT NO FROM goodstype WHERE parentType is NULL ORDER BY NO DESC LIMIT 0,1
package cn.com.css.common.util;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.u...