数字签名--RSA实现

来源:互联网 发布:linux安转vnc 编辑:程序博客网 时间:2024/05/29 02:21

最近有篇计算机网络的论文,准备写一下数字签名这个知识点。没有我想象的那么简单。。。

RSA这个算法在学数论的时候学习了,不过并不是用来学习加密的,而是学习了里面的中国剩余定理和费马小定理,跨越千年的算法这一篇文章讲的很不错,建议大家看一下:

http://cache.baiducontent.com/c?m=9d78d513d98604ea4fece4690d61c067690bd3257c8c9a027ea4974d84652b564711f4ba57734d5bc4c50d375ff21c4bea81653266597bf3cc899f4aacbc912a2d9c60742e13dc0754910eaeb85b388465d54de9d846b4fcb069d9aad7c4df2302970c182adeadde4753549b35ab5066a2bb9e4b175d&p=9761c64ad4d211a05be79e341b4898&newp=b434cb16d9c114b408e29774074882231610db2151d7d0122acf&user=baidu&fm=sc&query=http%3A//www%2Ematrix67%2Ecom/blog/archives/5100&qid=bb32cfcd001ab1e1&p1=1

我写的这个代码只是调用了java jdk里面的方法,并没有去实现这个加密算法。有需要的可以看一下。

代码:

package Signature;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;import java.security.Signature;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;public class RSA {private static String src = "CYK";public static void main(String[] args) {// TODO Auto-generated method stubjdkRSA();}public static void jdkRSA() {try {//1.初始化秘钥KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(512);KeyPair keyPair = keyPairGenerator.generateKeyPair();//用作验证 公钥RSAPublicKey rsaPublicKey = (RSAPublicKey)keyPair.getPublic();//用作签名 私钥RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate();//2.执行签名PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());KeyFactory keyFactory = KeyFactory.getInstance("RSA");PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);//签名对象  Signature signature = Signature.getInstance("MD5withRSA");//签名对象的初始化方法signature.initSign(privateKey);signature.update(src.getBytes());byte[] result = signature.sign();System.out.println("jdk rsa sign:" + result);//3.验证签名X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());keyFactory = KeyFactory.getInstance("RSA");PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);signature = Signature.getInstance("MD5withRSA");signature.initVerify(publicKey);signature.update(src.getBytes());boolean bool = signature.verify(result);System.out.println("jdk rsa verify:" + bool);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 四川云阅卷服务平台 四川云阅卷入口 吉林省云阅卷登录 人民是阅卷人 山东云阅卷平台登录入口 四川省云阅卷入口 四川云阅卷服务平台登录 云校阅卷登录入口 好分数阅卷3.0登录 山东云阅卷登录入口 自考阅卷严格吗 答题卡阅卷机 五岳阅卷网页 奥亚网上阅卷学生查分 郑州五岳阅卷查分登录入口 云阅卷服务平台欢迎您 云阅卷吉林省 自考阅卷严不严 阅历 阅历的意思 阅历是什么意思 如何提高阅历 人生阅历经典句子 放置江湖阅历 村嫂免的费阅历读全文 阅书 阅文集团 阅文 少年宾文目录阅70 阅文集团旗下网站 阅文ip 千帆阅文 阅文集团作家专区 阅文作家专区登录 阅文集团校招 阅微草堂笔记白话文 阅文网站 上海阅文集团 阅文app 2018阅文超级ip风云盛典 红袖添香-阅文集团旗下网站