验证签名机制——java示例
来源:互联网 发布:ubuntu怎么安装wine 编辑:程序博客网 时间:2024/05/29 19:04
简单的验证公钥私钥签名认证;
公钥是对外公开的部分,私钥是不公开的部分,一般在项目开发中公钥是给用户,私钥是存于服务器上,二者中有一个加密,则需要另外一个来解密。
下面是java实现的一个比较简单的示例:示例中注释写的很详细,可以大致看下,供参考
import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.Signature;/** * * @since 2015年8月20日 下午2:22:08 * @author hym */public class SignDemo { /**得到产生的私钥/公钥对 * @return * @author hym */ public static KeyPair getKeypair(){ //产生RSA密钥对(myKeyPair) KeyPairGenerator myKeyGen = null; try { myKeyGen = KeyPairGenerator.getInstance("RSA"); myKeyGen.initialize(1024); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } KeyPair myKeyPair = myKeyGen.generateKeyPair(); return myKeyPair; } /**根据密钥对对信息进行加密,返回公钥值 * @param mySig * @param myKeyPair * @param infomation * @return * @author hym */ public static byte[] getpublicByKeypair(Signature mySig,KeyPair myKeyPair,byte[] infomation){ byte[] publicInfo=null; try { mySig.initSign(myKeyPair.getPrivate()); //用私钥初始化签名对象 mySig.update(infomation); //将待签名的数据传送给签名对象 publicInfo = mySig.sign(); //返回签名结果字节数组 } catch (Exception e) { e.printStackTrace(); } return publicInfo; } /**公钥验证签名 * @param mySig * @param myKeyPair * @param infomation * @param publicInfo * @return * @author hym */ public static boolean decryptBypublic(Signature mySig, KeyPair myKeyPair,String infomation,byte[] publicInfo){ boolean verify=false; try { mySig.initVerify(myKeyPair.getPublic()); //使用公钥初始化签名对象,用于验证签名 mySig.update(infomation.getBytes()); //更新签名内容 verify= mySig.verify(publicInfo); //得到验证结果 } catch (Exception e) { e.printStackTrace(); } return verify; } public static void main(String[] args) { try { KeyPair keyPair=getKeypair(); Signature mySig = Signature.getInstance("MD5WithRSA");//用指定算法产生签名对象 byte[] publicinfo=getpublicByKeypair(mySig,keyPair,"验证我".getBytes()); boolean verify=decryptBypublic(mySig, keyPair, "验证我", publicinfo); System.out.println("验证签名的结果是:"+verify); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }}
步骤:
1.首先获得公钥/私钥对
2.根据获得公钥/私钥对,根据指定的算法来加密指定的内容,根据私钥加密获得相对应的公钥,公开,给用户;
3.用户根据内容来验证自己是否是跟传来的公钥是一对。。。
1 0
- 验证签名机制——java示例
- 验证签名机制——java示例
- 使用JAVA实现签名验证示例程序
- Android 签名验证机制
- 支付宝签名验证机制
- Java Applet签名验证
- Java Applet签名验证
- Java Applet签名验证
- 签名验证使用示例(MD5)
- android签名机制(3)——如何制作签名
- android签名机制(3)——如何制作签名
- Android签名机制之—签名过程详解
- Android签名机制之—签名过程详解
- 用python验证Android签名机制
- Android签名机制之---签名验证过程详解
- Android签名机制之---签名验证过程详解
- Android签名机制之---签名验证过程详解
- Android签名机制之---签名验证过程详解
- 欢迎使用CSDN-markdown编辑器
- json 在线转换
- HBuilder快捷键
- POJ1845------Sumdiv
- jdbc事务处理
- 验证签名机制——java示例
- 大小端模式
- sublime text侧边栏
- activity的启动模式和表示位
- windows远程登录全屏
- JQuery学习笔记(1)
- 图数据库之Cypher语言
- Inside Code Signing
- 自定义ListView显示项