- 浏览: 374960 次
- 来自: 北京
文章分类
- 全部博客 (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 898public class Client { ... -
ImageIO宋体出现小方框的解决
2014-11-03 16:34 922http://www.blogjava.net/yuanqix ... -
ArrayList根据条件+for循环批量删除的方法
2014-09-23 11:39 2718场景如下: ArrayList<Obj> list ... -
Java内部类的实例化
2014-08-06 15:51 1032class A{ getInstance(){ ... -
通过Thread.sleep把任务平均分配给线程按顺序执行的小例子
2014-07-22 10:46 1074package com.lj.test.JavaSe4; ... -
输入两个整数, 计算百分比
2014-07-21 18:01 1461public static String getPercen ... -
timer cancel方法的一个小实例
2014-07-21 12:14 1131package com.lj.timer; import ... -
通过Calendar获取上个月的最后一天
2014-06-26 12:11 2863Calendar cal=Calendar.getI ... -
通过BigInteger进行数字进制的相互转换
2014-06-24 11:09 25491. 十六进制转换为十进制 BigInteger deci ... -
jsbn.js missing function toRadix()
2014-06-24 10:43 1912在使用stanford学生的jsbn.js时遇到了toRadi ... -
CryptoJS.md5: Cannot read property 'words' of undefined
2014-06-19 15:07 4683var username=$("#myForm&q ... -
[转]sun.misc.BASE64Encoder找不到jar包的解决方法
2014-06-18 15:43 9391.右键项目-》属性-》java bulid path-》jr ... -
空Object转换String的陷阱
2014-06-17 15:45 802Object a=null; String b ... -
Java Convert Long to Date
2014-06-16 18:06 764问题: I have list with long value ... -
[转]JAVA中List&Set转换
2014-06-07 14:23 523JAVA中List&Set转换 list = new ... -
aes加密时的Illegal key size or default parameters
2014-06-06 14:21 4189KeyGenerator kgen = KeyGenerat ... -
String.replaceLast()
2014-06-03 16:02 1091http://stackoverflow.com/questi ... -
通过正则表达式来获取json数值
2014-05-23 11:39 13private String getJsonValue(Str ... -
java找不到或无法加载主类
2014-05-19 13:21 1278用CMD运行java +类名, 居然碰到这个问题。 编译是没有 ... -
Java转义字符笔记 |
2014-01-12 21:01 915数据库有一个关键字列-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 ...
UML2.0基础与RSA建模实例教程NEW
rsa加密算法实例
在C#中,你可以使用`RSACryptoServiceProvider`的构造函数来创建一个新的RSA实例,并调用`GenerateKeyPair()`方法生成公钥和私钥对。这些密钥可以通过`ExportParameters(true)`导出包含私钥的参数,或者通过`...
本实例将深入探讨RSA的工作原理,并通过具体实例来阐述其应用。 1. RSA算法原理: RSA基于数论中的大数因子分解难题。算法主要包括两个密钥:公钥和私钥。公钥可以公开,用于加密信息;私钥必须保密,用于解密信息...
本实例是基于Delphi编程环境实现的一个无第三方控件依赖的RSA加密程序,它提供了生成随机数、创建密钥对以及进行加密解密操作的功能。 首先,RSA算法的核心在于大素数的选择和欧拉函数。在Delphi中,我们可以通过...
在给定的"兼容JS和C#的RSA加密解密实例"中,我们关注的是如何在JavaScript(前端)和C#(后端)之间使用RSA进行安全的数据交换。这涉及到两个主要的方面:前端的加密和后端的解密。 前端部分,JavaScript通常用于...
RSA算法是一种非对称加密算法,它在信息安全领域扮演着重要的角色,特别是在数据传输和网络安全中。该算法基于数论中的大数因子分解难题,确保了只有拥有正确密钥的人才能解密信息。 首先,RSA的核心是公钥/私钥对...
RSA非对称加密是一种广泛应用的公钥加密算法,由Ron Rivest、Adi Shamir和Leonard ...通过学习和理解"RSA非对称加解密实例"的源码,开发者可以更好地掌握加密解密技术,并将其应用到实际项目中,保障数据的安全传输。
综上所述,这个"表单RSA加密实例+Struts2"项目旨在展示如何在Struts2框架中结合RSA加密技术,提升表单数据的安全性。通过学习和实践这个项目,开发者可以更好地理解RSA加密原理以及如何在实际Web应用中实施加密策略...
RSA签名算法实例,使用RSA的SignHash和VerifyHash可以同样做到SignData和VerifyData,事实上还有一种方法进行公钥加密的签名 认证。就是.NET中的AsymmetricSignatureFormatter和AsymmetricSignatureDeformatter。直 ...
本实例将探讨如何在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)的密钥...
在这个C语言实现的实例中,我们可以深入理解RSA的工作原理及其应用。 首先,我们要知道RSA的核心在于生成一对密钥:公钥和私钥。公钥可以公开,用于加密;私钥必须保密,用于解密。在这个实例中,"随机生成大素数...