`
sunxboy
  • 浏览: 2887813 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaScript RSA算法简单实现(转)

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML>
 <HEAD>
 <TITLE> New Document </TITLE>
 <META NAME="Generator" CONTENT="EditPlus">
 <META NAME="Author" CONTENT="">
 <META NAME="Keywords" CONTENT="">
 <META NAME="Description" CONTENT="">
 </HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
// ==================================================================
// JavaScript RSA算法简单实现
// Know Bugs:
//   1. Math.pow存在计算精度问题,因此不能选取较大的质数,否则会溢出
// By midea0978
// date:2005-08-10
// 参考文献
//    1.RSA算法研究 http://www.cnblogs.com/midea0978/articles/65244.html
//    2.PKCS #1: RSA Cryptography Specifications Version 2.0
//           http://www.faqs.org/rfcs/rfc2437.html 
// ==================================================================
RSAAlgorithm()
function RSAAlgorithm(){
 //1.首先选择两个简单的质数p,q
 var p=5
 var q=13
var n=p*q 
 //随机选择余数r,保证r与(p-1)*(q-1)=48互质
 var r=7 
 //得到private key是p,q,r
 document.write("----------------------------------<br>");
 document.write("<B>Private Key:</B><br>");
 document.write("p= "+p+"<br>");
 document.write("q= "+q+"<br>");
 document.write("r= "+r+"<br>");
 document.write("----------------------------------<br>");
 //2.计算public key
 //找到m,保证rm ==1 mod (p-1)*(q-1)
 var num=0
 for(a=0;a<500;a++){
  if(r*a%((p-1)*(q-1))==1){
   num=a;
   break;
  }
 }
 var m=num 
 if(m>0){
  document.write("<br>找到m= "+num+" ,计算余数="+(num*r)%((p-1)*(q-1))+",成功!<br>")
 }
 else{
  document.write("找不到满足条件的m,请调整参数");
 }
 document.write("----------------------------------<br>");
 document.write("<B>Public Key:<br></B>");
 document.write("m= "+m+"<br>");
 document.write("n= "+n+"<br>");
 document.write("----------------------------------<br>");
 document.write("<br>");
 document.write("<B>#演示加密过程#</B><br>");
 var text=20 //明文
 document.write("明文="+text+"<br>");
 //接下来, 计算 etext == text^r mod n, (0 <= b < n)
 var etext=Math.pow(text,r)%n;
 document.write("加密后的内容:"+etext+"<br>");
 document.write("<br>");
 document.write("#演示解密过程#<br>");
 //text=etext^m mod pq
 var text=Math.pow(etext,m)%n;
 document.write("解密后的内容:"+text+"<br>");
}
/**//*
JAVA下面的简单实现
import java.math.BigInteger;
public class RSAAlgorithm {
    public static void main(String[] args) {
  BigInteger p = new BigInteger("5");    //P
  BigInteger q = new BigInteger("13");    //Q
        BigInteger n = new BigInteger("65");    //N
        BigInteger r = new BigInteger("7");

        BigInteger biginteger = new BigInteger("20");
        BigInteger biginteger1 = biginteger.modPow(r, n);
        System.out.println("加密数据:" + biginteger1);
        BigInteger m = r.modInverse(new BigInteger("48"));
        System.out.println("m:" + m);
        BigInteger biginteger2 = biginteger1.modPow(m, n);
        System.out.println("解密数据:" + biginteger2);
    }
}
*/
//-->
</SCRIPT>
</BODY>
</HTML>

 

分享到:
评论

相关推荐

    javascript RSA 算法实现

    在《JavaScript RSA算法简单实现.doc》文档中,可能详细阐述了如何在JavaScript环境中利用库实现RSA算法的步骤,包括如何生成密钥对、如何进行加密和解密操作,以及如何实现简单的数字签名。读者可以通过阅读文档,...

    javascript 编写的RSA算法

    JAVASCRIPT实现的使用RSA密钥对加密解密以及产生密钥对 JAVASCRIPT using RSA key implementation and the generation of encryption and decryption key pair

    js实现rsa加密算法

    本rsa算法是使用Java与javascript加密解密范例代码,该资料从互联网收集,加上了自己的使用体会,如果对你有帮助那是万幸! js加密部分

    基于JavaScript的RSA算法实现及应用场景示例

    内容概要:本文档介绍了如何利用 JavaScript 实现 RSA 非对称加密算法,并给出了使用 JSEncrypt 库的具体实例。首先讲解了安装和引入jsencrypt库的方式,然后用简单的HTML页面展示了从生成密钥对到实现加解密功能的...

    java-RSA.rar_Java实现RSA_java RSA_rsa java_rsa javascript_rsa加密算法

    1. **生成密钥对**:使用`KeyPairGenerator`类,指定RSA算法,然后通过`generateKeyPair()`方法生成包含公钥和私钥的密钥对。 ```java KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen....

    JavaScript实现RSA加密和解密

    JavaScript实现RSA加密和解密

    基于JavaScript的RSA加密算法设计源码实现

    该项目是一个基于JavaScript的RSA加密算法设计源码,包含33个文件,包括23个Java文件、2个XML文件、1个Git忽略文件、1个Markdown文件、1个Maven配置文件、1个JavaScript文件、1个HTML文件、1个SQL文件。该系统主要...

    RSA非对称加密算法的PEM与XML格式密钥对的转换

    RSA非对称加密算法是公钥密码学中的一个重要组成部分,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因其发明者的名字首字母而得名。它广泛应用于网络安全领域,如数据加密、数字签名等。在实际应用中,...

    算法JavaScript实现

    在这个名为"算法JavaScript实现"的主题中,我们将深入探讨如何使用JavaScript这一广泛应用于Web开发的脚本语言来实现几种关键的算法。这些算法包括大根堆、Canvas棋盘覆盖法以及二分查询。 首先,让我们了解一下...

    web 前端 javascript RSA加密提交数据,server端用java解密

    在本主题中,我们将深入探讨如何使用RSA算法在JavaScript中加密数据,并在Java服务器端进行解密。 首先,RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它使用一对密钥:公钥和私钥。公钥可以公开给任何人,...

    javascript实现rsa加解密

    RSA算法基于两个大素数的乘积不易分解的数学难题。公钥是由这两个大素数p和q的乘积n以及欧拉函数φ(n)(φ(n) = (p-1)(q-1))的欧拉定理模反元素e组成。私钥则是d,满足条件ed ≡ 1 mod φ(n),这样公钥(e,n)用于...

    RSA.rar_Crypt Javascript_javascript_javascript rsa_js RSA 密钥对_rs

    这个名为"RSA.rar"的压缩包包含了一些JavaScript实现的RSA加密解密以及密钥对生成的示例。JavaScript是一种广泛...通过分析和运行这些文件,我们可以深入理解RSA算法的运作机制,并且可以应用于实际的Web安全场景中。

    易语言 加解密 算法 嘻哈算法 rsa算法 大全 源码 易语言 JS 加密 解密 算法 都有 源码

    在这个“易语言 加解密 算法 嘻哈算法 RSA算法 大全 源码”资源中,我们可以深入探讨几个重要的加密解密算法,并了解它们在易语言中的实现。 首先,嘻哈算法(Hash Algorithm)是一种用于数据完整性校验的算法。...

    RSA加密解密.rar

    RSA加密解密是一种广泛应用于网络安全中的...通过JavaScript库,我们可以方便地在浏览器环境中实现RSA算法,为Web应用提供安全保障。而压缩包中的"RSA"文件,很可能是为了帮助开发者理解和实践这一技术提供的参考资料。

    可以互操作的Java和Javascript RSA加密解密程序

    首先,我们需要理解RSA算法的基本原理。RSA基于大数因子分解的困难性,生成一对密钥,即一个公开的公钥(n, e)和一个私人的私钥(n, d)。其中n是两个大素数的乘积,e和d是满足条件ed ≡ 1 (mod φ(n))的一对整数,...

    用HTML和JavaScript写的RSA加密小工具

    RSA算法的工作原理是:用户拥有一个公钥和一个私钥,公钥可以公开,用于加密数据;私钥则必须保密,用于解密数据。当一方用对方的公钥加密信息后,只有拥有相应私钥的接收方才能解密,确保了信息的安全性。 压缩包...

    RSA使用PKCS1填充javascript加密

    PKCS(Public Key Cryptography Standards)是一系列由RSA实验室和其他几家公司在1990年代初制定的公开密钥加密标准,其中PKCS#1是关于RSA算法的具体实现规范,定义了如何对明文进行填充以增强加密的安全性。...

    rsa算法----使用Java与javascript加密解密范例

    RSA算法是一种非对称加密算法,它基于两个不同的密钥:公钥和私钥。在信息安全领域,这种算法被广泛用于数据加密、数字签名和密钥交换。在本示例中,我们将探讨如何使用Java和JavaScript实现RSA加密解密。 在Java中...

    Javascript实现的SHA-256加密算法完整实例

    本篇文章将详细阐述如何使用JavaScript语言实现SHA-256加密算法。 JavaScript实现SHA-256加密算法的实例主要涉及以下几个关键部分: 1. **位运算基础**:JavaScript提供了位运算符,包括按位与(&)、按位或(|)、...

    Java语言实现的md5,rsa算法传送文件

    总的来说,这个项目结合了Java的MD5和RSA算法,通过Applet和Socket实现了安全的文件传输。用户通过Applet选择并加密文件,然后通过Socket将加密后的文件发送到服务器,服务器端再用对应的私钥解密并验证MD5摘要,以...

Global site tag (gtag.js) - Google Analytics