- 浏览: 1370497 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (551)
- 计划 (4)
- java (115)
- oracle (60)
- ajax (3)
- javascript (64)
- 计算机操作技巧集 (11)
- 近期关注话题 (10)
- 随想 (13)
- html (6)
- struts (15)
- hibernate (16)
- spring (2)
- game (0)
- Eglish (10)
- DisplayTag (6)
- jsp (18)
- css (3)
- eclipse (3)
- 其他知识 (8)
- 备用1 (12)
- 备用2 (1)
- 笑话-放松心情 (9)
- 设计 (1)
- 设计模式 (1)
- 数据结构 (0)
- office办公软件 (5)
- webwork (0)
- tomcat (2)
- MySql (1)
- 我的链接资源 (5)
- xml (2)
- servlet (0)
- PHP (13)
- DOM (0)
- 网页画图vml,canvas (1)
- 协议 (2)
- 健康 (3)
- 书籍下载 (1)
- jbpm (1)
- EXT (1)
- 自考 (2)
- 报表 (4)
- 生活 (64)
- 操作系统基础知识 (2)
- 测试 (2)
- guice (1)
- google学习 (2)
- Erlang (1)
- LOG4J (2)
- wicket (1)
- 考研 (1)
- 法律 (1)
- 地震 (1)
- 易学-等等相关 (1)
- 音乐 (1)
- 建站 (4)
- 分享说 (3)
- 购物省钱 (0)
- linux (1)
最新评论
-
zenmshuo:
如果使用SpreadJS这一类的表格工具,应该能更好的实现这些 ...
js中excel的用法 -
hjhj2991708:
第一个已经使用不了
jar包查询网站 非常好用! -
jiangmeiwei:
...
中文乱码 我的总结 不断更新 -
gary_bu:
...
response.sendRedirect 中文乱码问题解决 -
hnez:
多谢指点,怎么调试也不通,原来我在<body>&l ...
ExtJs IE ownerDocument.createRange() 错误解决方案
原文地址:http://www.cs.princeton.edu/introcs/78crypto/RSA.java.html
另一http://www.java3z.com/cwbwebhome/article/article1/19.jsp?id=61
RSA.java
Below is the syntax highlighted version of RSA.java from §7.9 Cryptography.
Copyright © 2006, Robert Sedgewick and Kevin Wayne.
Last updated: Fri Mar 10 16:22:00 EST 2006.
另一http://www.java3z.com/cwbwebhome/article/article1/19.jsp?id=61
RSA.java
Below is the syntax highlighted version of RSA.java from §7.9 Cryptography.
/************************************************************************* * Compilation: javac RSA.java * Execution: java RSA N * * Generate an N-bit public and private RSA key and use to encrypt * and decrypt a random message. * * % java RSA 50 * public = 65537 * private = 553699199426609 * modulus = 825641896390631 * message = 48194775244950 * encrpyted = 321340212160104 * decrypted = 48194775244950 * * Known bugs (not addressed for simplicity) * ----------------------------------------- * - It could be the case that the message >= modulus. To avoid, use * a do-while loop to generate key until modulus happen to be exactly N bits. * * - It's possible that gcd(phi, publicKey) != 1 in which case * the key generation fails. This will only happen if phi is a * multiple of 65537. To avoid, use a do-while loop to generate * keys until the gcd is 1. * *************************************************************************/ import java.math.BigInteger; import java.security.SecureRandom; public class RSA { private final static BigInteger one = new BigInteger("1"); private final static SecureRandom random = new SecureRandom(); private BigInteger privateKey; private BigInteger publicKey; private BigInteger modulus; // generate an N-bit (roughly) public and private key RSA(int N) { BigInteger p = BigInteger.probablePrime(N/2, random); BigInteger q = BigInteger.probablePrime(N/2, random); BigInteger phi = (p.subtract(one)).multiply(q.subtract(one)); modulus = p.multiply(q); publicKey = new BigInteger("65537"); // common value in practice = 2^16 + 1 privateKey = publicKey.modInverse(phi); } BigInteger encrypt(BigInteger message) { return message.modPow(publicKey, modulus); } BigInteger decrypt(BigInteger encrypted) { return encrypted.modPow(privateKey, modulus); } public String toString() { String s = ""; s += "public = " + publicKey + "\n"; s += "private = " + privateKey + "\n"; s += "modulus = " + modulus; return s; } public static void main(String[] args) { int N = Integer.parseInt(args[0]); RSA key = new RSA(N); System.out.println(key); // create random message, encrypt and decrypt BigInteger message = new BigInteger(N-1, random); //// create message by converting string to integer // String s = "test"; // byte[] bytes = s.getBytes(); // BigInteger message = new BigInteger(s); BigInteger encrypt = key.encrypt(message); BigInteger decrypt = key.decrypt(encrypt); System.out.println("message = " + message); System.out.println("encrpyted = " + encrypt); System.out.println("decrypted = " + decrypt); } }
Copyright © 2006, Robert Sedgewick and Kevin Wayne.
Last updated: Fri Mar 10 16:22:00 EST 2006.
发表评论
-
TilesRequestProcessor - Tiles definition factory found for request processor ''
2011-11-03 15:39 2506TilesRequestProcessor - T ... -
jar包查询网站 非常好用!
2009-12-28 11:47 13398java jar包查询 根据类查询所在的java包 http ... -
tomcat 启动错误 java.lang.UnsupportedClassVersionError: Bad version number in .class
2009-11-27 08:53 2259请访问http://ddgrow.com/bad-versio ... -
arrayToString
2009-04-07 09:01 1423原文:http://leepoint.net/notes-ja ... -
native2ascii
2009-04-02 12:00 1195D:\>native2ascii 中国 \u4e2d\u ... -
java swing 架构
2009-03-04 15:03 2323下面是偶尔找到的一篇 相当好的文章 ,针对 java swin ... -
红帽企业5序列号
2009-02-27 09:11 2548这是从[url]http://www.21codes.com/ ... -
中文乱码 我的总结 不断更新
2009-02-23 09:51 2309java中文乱码问题 1、jsp中文乱码 <0& ... -
websphere 数据库连接
2009-02-19 17:47 2130问个问题: 应用服务器: websphere 连接池:pr ... -
打开java控制台的方法
2009-02-10 17:10 3064D:\Program Files\Java\jre6\bin\ ... -
log4j weblogic 问题
2009-01-21 15:08 1947问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
log4j weblogic 问题
2009-01-21 15:07 0问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
java.lang.NoClassDefFoundError in quartz
2008-12-24 15:35 2924quartz-1.5.2.jar tomcat5.5 当使 ... -
java 得到运行时系统中的内存信息
2008-12-19 20:54 1530这个在tomcat下面使用过,在引记录下来,以后方便查找 Ru ... -
log4j
2008-12-13 11:32 905讲解了用xml配置,还有例子,以及对 levelmin lev ... -
servlet 2.3 规范
2008-12-02 20:55 0servlet 2.3 规范 http://www.orio ... -
session 问题
2008-11-26 16:41 1004问个问题,如下: 我要在一个A系统中,通过一个弹出窗口,超链接 ... -
java 反编译工具
2008-10-08 11:03 1999从哪找到的给忘了,用起来不错,放在这里,以后找起来方便 ,有需 ... -
thinking in java 读书笔记
2008-10-06 22:09 1344记录下来,以便以后查看 thinking in java 4t ... -
response.sendRedirect 中文乱码问题解决
2008-07-30 10:59 8503原文:http://hi.baidu.com/saiv000/ ...
相关推荐
这是用JAVA编写的RSA算法,功能比较完整,不过注意支持的数字不能太大。
在`RSADemo`这个示例中,可能包含了完整的RSA算法Java实现,包括密钥对的生成、加密和解密的过程。你可以通过阅读和理解这个示例代码,深入学习RSA算法在实际项目中的应用。 总的来说,RSA算法在Java中的实现涉及了...
RSA加密是一种非对称加密算法,广泛应用于网络安全领域,如数据传输、数字签名等。它基于大数因子分解的困难性,确保了信息的安全性。本工具提供了在不同编程语言间进行RSA密钥的互换,包括JAVA转C#、JAVA转PHP以及...
RSAPrivateKey prk = (RSAPrivateKey) b.readObject(); BigInteger d = prk.getPrivateExponent(); // 获取私钥参数及解密 BigInteger n = prk.getModulus(); System.out.println("d= " + d); System.out...
RSA算法是一种非对称加密技术,它在信息安全领域扮演着重要的角色。非对称加密与对称加密的主要区别在于,它使用两个不同的密钥:一个公钥用于加密,另一个私钥用于解密。RSA的名字来源于它的发明者Ron Rivest、Adi ...
这个RAR压缩包包含了一个名为“Rsa.java”的源代码文件,可能是用于演示如何在Java环境中实现RSA算法。另一个文件“www.pudn.com.txt”可能是辅助资料,可能包含了关于算法的解释或者是一些额外的说明。 RSA算法由...
这个RAR压缩包提供的是一个Java实现的RSA算法示例,名为"rsa.java",适合开发者参考学习。 RSA算法的核心原理是基于两个大素数的乘积难以分解这一数学难题。它涉及到以下几个关键概念: 1. **公钥与私钥**:RSA...
Java是一种广泛应用于网络编程领域的编程语言,而RSA算法是一种公钥密码体制,在信息安全领域占据重要地位。本文将深入探讨如何使用Java语言实现RSA加密算法的过程,以及Java语言的发展历程和特点。 Java语言...
**RSA算法简介** RSA是由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出的,是一种非对称加密算法。它基于两个密钥:公钥和私钥。公钥用于加密,而私钥用于解密。任何人都可以使用公钥对数据进行加密,但只有...
在Java中实现RSA算法,可以利用Java的`java.security`包,该包提供了KeyPairGenerator、PublicKey、PrivateKey等类来生成和管理密钥对,以及Cipher类用于加密和解密操作。以下是大致步骤: 1. 初始化...
这可以通过`java.security.KeyPairGenerator`类完成,指定"RSA"作为算法,并通过`KeyPairGenerator.getInstance("RSA")`获取实例。然后调用`generateKeyPair()`生成包含公钥(PublicKey)和私钥(PrivateKey)的密钥...
下面将详细介绍RSA算法的工作原理、加密与解密过程以及其在Java中的实现。 1. RSA算法原理: RSA基于大数因子分解的困难性,选取两个大素数p和q,计算它们的乘积n=p*q。接着选择一个整数e,要求1<e<phi(n),且e与...
在Java中实现RSA算法,主要涉及到`java.security`和`javax.crypto`这两个包中的类。 1. **RSA算法原理** RSA算法的核心是欧拉定理和费马小定理。两个大素数p和q相乘得到n=p*q,计算φ(n)=(p-1)*(q-1),然后选取一...
RSA算法基于大数分解难题的原理,使用公钥加密、私钥解密的方式实现信息的加密和解密。 知识点2:Java中RSA加密解密算法的实现 在Java中,可以使用Java Cryptography Architecture(JCA)来实现RSA加密解密算法。...
下面将详细介绍RSA算法的核心原理、工作流程及其在Java中的实现。 RSA算法基于数论中的两个基本概念:大整数分解和欧拉函数。其主要思想是,选取两个大素数p和q,它们的乘积n=p*q非常大,且难以分解。然后计算n的...
java利用大整数类实现的一个RSA加解密签名过程。
### RSA算法实现报告 #### 实验环境 - **硬件配置**:处理器:Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz (4CPUs), ~2.4GHz;内存:2048MB RAM - **软件工具**: - 操作系统:Windows 7 旗舰版 - 开发工具:...
Java实现RSA算法时,通常会用到`java.security`和`javax.crypto`这两个包中的类。模的重复平方算法(也称为快速幂运算)用于高效地计算大整数的幂,而中国剩余定理(Chinese Remainder Theorem, CRT)则在某些情况下...
为了实现C#与Java之间的互通加解密,需要确保两边使用的RSA算法实现一致,包括密钥生成、填充算法及加密解密的具体实现。 - **密钥一致性**:确保C#与Java生成的公私钥对相同。 - **填充算法一致性**:两边都应采用...
在.NET环境中,加密和解密操作同样可以使用RSA算法,但是由于密钥格式的差异,直接在Java和.NET之间进行加密解密操作可能会遇到问题。本资源提供的"Java RSA加密与.NET的密匙转换完整版,java类"解决了这个问题,...