《2022年java实现几种加密算法 .pdf》由会员分享,可在线阅读,更多相关《2022年java实现几种加密算法 .pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、作业 6:有短句 “Sun Yat -sen University is a vibrant community of scholarship”,请用下列方法加密: 简单代替密码(移位密码),k=5 ,q=26 ; 多表代替密码,其中m=6, K=cipher; 纵行置换密码,假定每行10 个字节。请写出加密后密文。加密结果:简单代替加密:Xzs Dfy-xjs Zsnajwxnyd nx f angwfsy htrrzsnyd tk xhmtqfwxmnu多表代替加密:Ucc Crv-hlr Wvxciiuqif zu p zzdzpux ewbtyekbn sw aroscczhomg纵向
2、置换加密:Sntbucu yrnhnU aio nintlYistyaav rteacos-r ofhssvm ieiimsp 本作业是使用java编程求解的,以为是求解算法(java语言描述):/* * 简单代替加密 */publicclass Ssc private String name ; privateintk ; privateintq; public Ssc() this. k = 5; this. q = 26; this. name = 简单代替加密 ; /* * k为位移量, q 为字母表长度 * param k * param q */public Ssc(int k,
3、int q) this. k = k; this. q = q; this. name = 简单代替加密 ; /* * 加密 * param str * return */public String encrypt(String str) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - String code = ; char c = str.toCharArray(); for ( int i = 0; i = 97 & hc
4、 = 65 & hc = 90) int t = hc - 65; int tt = (t + k) % q; hc = 65 + tt; char temp = (char )hc; code += temp; return code; publicint getK() returnk; publicvoid setK(int k) this. k = k; publicint getQ() returnq; publicvoid setQ(int q) this. q = q; public String getName() returnname ; publicvoid setName(
5、String name) this. name = name; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - /* * 多表代替加密 */publicclass Psc private String name ; privateintm; private String K; public Psc() this. m = 6; this. K = run; this. name = 多表代替加密 ; /* * m为密钥长度,K为
6、密钥 * param m * param K */public Psc(int m, String K) this. m = m; this. K = K; this. name = 多表代替加密 ; /* * 加密 * param str * return */public String encrypt(String str) String code = ; char c = str.toCharArray(); char k = K.toCharArray(); for ( int i = 0; i = k.length) ki = i % k.length; int kt = kki -
7、 97; if(hc = 97 & hc = 65 & hc = 90) int t = hc - 65; int tt = (t + kt) % 26; hc = 65 + tt; char temp = (char ) hc; code += temp; return code; publicint getM() returnm; publicvoid setM(int m) this. m = m; public String getK() returnK; publicvoid setK(String k) K = k; public String getName() returnna
8、me ; publicvoid setName(String name) this. name = name; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - /* * 纵向置换加密 */publicclass Wrc private String name ; privateintskip; public Wrc() this. skip = 10; this. name = 纵向置换加密 ; /* * skip为间隔 * p
9、aram skip */public Wrc(int skip) this. skip = skip; this. name = 纵向置换加密 ; /* * 加密 * param str * return */public String encrypt(String str) String code = ; int len = str.length(); int group_len = (len%skip)=0)? len/skip : len/skip + 1; char groups = newchar100100; char c = str.toCharArray(); int cc =
10、 c.length / skip; int cr = c.length % skip; if(cr != 0) for ( int i = 0; i skip - cr; i+) cc.length + i = 0; for ( int i = 0; i group_len; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - for ( int j = 0; j skip; j+) groupsij = ci*skip +
11、 j; / System.out.print(groupsij); for ( int j = 0; j skip; j+) for ( int i = 0; i group_len; i+) code += groupsij; return code; publicint getSkip() returnskip; publicvoid setSkip(int skip) this. skip = skip; public String getName() returnname ; publicvoid setName(String name) this. name = name; /* *
12、 main方法 */publicclass Main publicstaticvoid main(String args) String str =Sun Yat-sen University is a vibrant community of scholarship; Ssc ssc = new Ssc(5, 26); System.out .println(ssc.getName() + : + ssc.encrypt(str); Psc psc = new Psc(6, cipher); System.out .println(psc.getName() + : + psc.encrypt(str) ); Wrc wrc = new Wrc(10); System.out .println(wrc.getName() + : + wrc.encrypt(str); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -