- 浏览: 377209 次
- 来自: 北京
文章分类
- 全部博客 (237)
- XML (6)
- JavaSE (39)
- Junit (1)
- Maven (10)
- JavaScript (12)
- JavaEE (16)
- HTML5 (10)
- java多线程 (8)
- Hibernate (30)
- Java反射 (3)
- Spring (11)
- Struts (1)
- svn (2)
- linux (12)
- 代码实例 (1)
- 设计模式 (1)
- UML (1)
- javassist (1)
- Oracle (3)
- Hibernate异常 (9)
- DWR (6)
- Java泛型 (2)
- SpringMVC (11)
- Dbunit (3)
- github (2)
- Algorithm (1)
- zTree (1)
- jquery (7)
- freemarker (4)
- mysql (5)
- ffmpeg (1)
- 编码 (1)
- lucene (15)
- hadoop (1)
- JVM (1)
- Regular Expressions (5)
- myeclipse (1)
- 爬虫 (7)
- 加密 (3)
- WebService (2)
- Socket (2)
- Windows (1)
最新评论
-
wxpsjm:
好直接
HV000030: No validator could be found for type: java.lang.Integer. -
wxhhbdx:
学习了,对新手来说很不错的教程。
SpringMVC入门 (二) 数值传递 -
xgcai:
正好在学dwr
DWR入门 (二)用户实例
package com.lj.rsa; import java.io.IOException; import java.security.InvalidKeyException; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; @SuppressWarnings("restriction") public class RSAHelper { /** * 得到公钥 * @throws IOException * @throws NoSuchAlgorithmException * @throws InvalidKeySpecException */ public static PublicKey getPublicKey(String key) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException{ byte[] keyBytes; keyBytes=(new BASE64Decoder()).decodeBuffer(key); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory=KeyFactory.getInstance("RSA"); PublicKey publicKey=keyFactory.generatePublic(keySpec); return publicKey; } public static PrivateKey getPrivateKey(String key) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException{ byte[] keyBytes; keyBytes= new BASE64Decoder().decodeBuffer(key); PKCS8EncodedKeySpec keySpec=new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory=KeyFactory.getInstance("RSA"); PrivateKey privateKey=keyFactory.generatePrivate(keySpec); return privateKey; } public static String getKeyString(Key key){ byte[] keyBytes=key.getEncoded(); String s=new BASE64Encoder().encode(keyBytes); return s; } public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { // System.out.println(RSAHelper.getPublicKey("hello")); KeyPairGenerator keyPairGen=KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair=keyPairGen.generateKeyPair(); System.out.println(keyPair); //null //公钥 PublicKey publicKey=(RSAPublicKey)keyPair.getPublic(); System.out.println(publicKey); //秘钥 PrivateKey privateKey=keyPair.getPrivate(); byte[] publicKeyBytes=publicKey.getEncoded(); String publicKeyString=(new BASE64Encoder()).encode(publicKeyBytes); byte[] privateKeyBytes=privateKey.getEncoded(); String privateKeyString=(new BASE64Encoder()).encode(privateKeyBytes); //加解密类 Cipher cipher=Cipher.getInstance("RSA"); //明文 byte[] plainText="你好世界".getBytes(); //加密 cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] enBytes=cipher.doFinal(plainText); //通过秘钥字符串得到秘钥 publicKey=getPublicKey(publicKeyString); privateKey=getPrivateKey(privateKeyString); String encodedStr=new String(enBytes,"utf-8"); System.out.println("加密密文为:\n"+encodedStr); //解密 cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] deBytes=cipher.doFinal(enBytes); publicKeyString = getKeyString(publicKey); // System.out.println("publicKeyString=\n"+publicKeyString); privateKeyString=getKeyString(privateKey); // System.out.println("privateKeyString=\n"+privateKeyString); String s=new String(deBytes); System.out.println(s); } }
发表评论
-
Socket编程的HelloWorld实例
2014-11-07 15:05 903public class Client { ... -
ImageIO宋体出现小方框的解决
2014-11-03 16:34 932http://www.blogjava.net/yuanqix ... -
ArrayList根据条件+for循环批量删除的方法
2014-09-23 11:39 2724场景如下: ArrayList<Obj> list ... -
Java内部类的实例化
2014-08-06 15:51 1039class A{ getInstance(){ ... -
通过Thread.sleep把任务平均分配给线程按顺序执行的小例子
2014-07-22 10:46 1090package com.lj.test.JavaSe4; ... -
输入两个整数, 计算百分比
2014-07-21 18:01 1470public static String getPercen ... -
timer cancel方法的一个小实例
2014-07-21 12:14 1139package com.lj.timer; import ... -
通过Calendar获取上个月的最后一天
2014-06-26 12:11 2877Calendar cal=Calendar.getI ... -
通过BigInteger进行数字进制的相互转换
2014-06-24 11:09 25681. 十六进制转换为十进制 BigInteger deci ... -
jsbn.js missing function toRadix()
2014-06-24 10:43 1920在使用stanford学生的jsbn.js时遇到了toRadi ... -
CryptoJS.md5: Cannot read property 'words' of undefined
2014-06-19 15:07 4695var username=$("#myForm&q ... -
[转]sun.misc.BASE64Encoder找不到jar包的解决方法
2014-06-18 15:43 9491.右键项目-》属性-》java bulid path-》jr ... -
空Object转换String的陷阱
2014-06-17 15:45 810Object a=null; String b ... -
Java Convert Long to Date
2014-06-16 18:06 773问题: I have list with long value ... -
[转]JAVA中List&Set转换
2014-06-07 14:23 536JAVA中List&Set转换 list = new ... -
aes加密时的Illegal key size or default parameters
2014-06-06 14:21 4208KeyGenerator kgen = KeyGenerat ... -
String.replaceLast()
2014-06-03 16:02 1100http://stackoverflow.com/questi ... -
通过正则表达式来获取json数值
2014-05-23 11:39 13private String getJsonValue(Str ... -
java找不到或无法加载主类
2014-05-19 13:21 1287用CMD运行java +类名, 居然碰到这个问题。 编译是没有 ... -
Java转义字符笔记 |
2014-01-12 21:01 921数据库有一个关键字列-keyword,里面存放的关键字格式如下 ...
相关推荐
在提供的"张也弛的RSA实例"压缩包中,可能包含了一些Java程序,这些程序展示了如何使用上述原理和方法进行RSA加密和解密。例如,可能会有一个类用于生成密钥对,另一个类用于加密和解密数据。通过这些实例,你可以...
RSA加密算法是公开密钥密码学中的一个经典算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它基于大整数因子分解的困难性,使得加密过程对于不知道密钥的人来说几乎是不可能破解的。 ...
这个实例可能是为了帮助用户理解RSA的工作原理和实际应用。在本文中,我们将深入探讨RSA加密解密机制及其重要性。 RSA的名字来源于其三位发明者:Ron Rivest、Adi Shamir 和 Leonard Adleman。它基于大数因子分解的...
RSA算法是一种非对称...总结,Delphi中的RSA实例展示了如何使用该编程环境内置的加密库进行非对称加密操作。理解RSA的基本原理以及如何在Delphi中实现这些原理,对于开发涉及安全传输和存储数据的应用程序至关重要。
首先,我们需要创建一个RSA实例,然后生成或加载公钥和私钥。公钥可以公开分享,而私钥必须保密。 ```csharp RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); ``` 生成密钥对: ```csharp ...
本实例是基于Delphi编程环境实现的一个无第三方控件依赖的RSA加密程序,它提供了生成随机数、创建密钥对以及进行加密解密操作的功能。 首先,RSA算法的核心在于大素数的选择和欧拉函数。在Delphi中,我们可以通过...
UML2.0基础与RSA建模实例教程NEW
rsa加密算法实例
在C#中,你可以使用`RSACryptoServiceProvider`的构造函数来创建一个新的RSA实例,并调用`GenerateKeyPair()`方法生成公钥和私钥对。这些密钥可以通过`ExportParameters(true)`导出包含私钥的参数,或者通过`...
本实例将深入探讨RSA的工作原理,并通过具体实例来阐述其应用。 1. RSA算法原理: RSA基于数论中的大数因子分解难题。算法主要包括两个密钥:公钥和私钥。公钥可以公开,用于加密信息;私钥必须保密,用于解密信息...
RSA加密算法是信息安全领域的重要组成部分,其基于数学原理的非对称加密方式为数据传输和网络安全提供了坚实的保障。尽管该算法在信息安全领域应用广泛,但对于初学者而言,复杂的代码和抽象的数学概念往往构成理解...
在给定的"兼容JS和C#的RSA加密解密实例"中,我们关注的是如何在JavaScript(前端)和C#(后端)之间使用RSA进行安全的数据交换。这涉及到两个主要的方面:前端的加密和后端的解密。 前端部分,JavaScript通常用于...
RSA加密解密C#实现调用实例 public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString) { try { byte[] PlainTextBArray; byte[] CypherTextBArray; string Result; System.Security....
RSA非对称加密是一种广泛应用的公钥加密算法,由Ron Rivest、Adi Shamir和Leonard ...通过学习和理解"RSA非对称加解密实例"的源码,开发者可以更好地掌握加密解密技术,并将其应用到实际项目中,保障数据的安全传输。
综上所述,这个"表单RSA加密实例+Struts2"项目旨在展示如何在Struts2框架中结合RSA加密技术,提升表单数据的安全性。通过学习和实践这个项目,开发者可以更好地理解RSA加密原理以及如何在实际Web应用中实施加密策略...
RSA签名算法实例,使用RSA的SignHash和VerifyHash可以同样做到SignData和VerifyData,事实上还有一种方法进行公钥加密的签名 认证。就是.NET中的AsymmetricSignatureFormatter和AsymmetricSignatureDeformatter。直 ...
《UML 2.0基础与RSA建模实例教程》一书由曹衍龙和汪杰编著,全面深入地介绍了UML 2.0的基础理论及其在RSA(Rational Software Architect)中的应用实例,旨在为读者提供软件工程中建模方法论的详细指导。 ### 软件...
本实例将探讨如何在PHP中实现RSA加密和解密,同时也会提及OpenSSL的安装和使用,这对于在Windows环境中进行PHP开发至关重要。 首先,RSA(Rivest–Shamir–Adleman)是一种非对称加密算法,它使用两个密钥:公钥和...
本文实例讲述了Python3非对称加密算法RSA。分享给大家供大家参考,具体如下: python3 可以使用 Crypto.PublicKey.RSA 和 rsa 生成公钥、私钥。 其中 python3.6 Crypto 库的安装方式请参考前面一篇《Python3对称加密...
这可以通过`java.security.KeyPairGenerator`类完成,指定"RSA"作为算法,并通过`KeyPairGenerator.getInstance("RSA")`获取实例。然后调用`generateKeyPair()`生成包含公钥(PublicKey)和私钥(PrivateKey)的密钥...