首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA中的加密算法之双向加密(二)

(二)、非对称加密 1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统...公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。...RSA 公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。...RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。...在这种情况下,您可以使用AES_ENCRYPT()和AES_DECRYPT()函数,它们的工作方式是相同的,但是加密强度更高。 单向加密与双向加密不同,一旦数据被加密就没有办法颠倒这一过程。

1.6K10

java的rsa加密算法_用java编程实现RSA加密算法

那么我今天就给大家介绍一下如何利用Java编程来实现RSA加密算法。 一、RSA加密算法描述 RSA加密算法是1978年提出的。...二、用Java语言描述RSA加密算法的原理 假设我们需要将信息从机器A传到机器B,首先由机器B随机确定一个private_kcy(我们称之为密钥),可将这个private_key始终保存在机器B中而不发出来...三、用java编程实现RSA加密算法过程 1、产生大素数 实现RSA加密算法的第一个步骤是产生大素数p和q,采用的方法是产生随机数而后对其进行素性判断,故实现RSA加密算法的一个重要技术是随机数的产生。...n,在程序实现上可以利用Biglnteger类中的modPow方法,该方法是计算一个大整数的幂与另外一个大整数的模。...小知识之公开密钥 公开密钥也称为非对称密钥,每个人都有一对唯一对应的密钥:公开密钥(简称公钥)和私人密钥(简称私钥),公钥对外公开,私钥由个人秘密保存;用其中一把密钥加密,就只能用另一把密钥解密。

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常用的加密算法DES3、AES & RSA

    在Java中,可以使用javax.crypto包中的类来实现AES的加密和解密。...RSA算法的安全性基于大数分解难题,即给定两个大素数p和q,它们的乘积n很容易计算得出,但反过来,给定n想要分解回p和q在计算上是非常困难的,特别是在n非常大的情况下。...RSA的基本原理和操作流程包括以下几个步骤: 1. 密钥生成 选择两个大素数 p 和 q。 计算它们的乘积 n = p * q,n 成为RSA公钥和私钥的一部分,同时也是加密和解密时的模数。...速度:RSA加密和解密的速度相对较慢,尤其是对于大消息,因此在实际应用中,RSA通常与对称加密算法结合使用,RSA用于安全地交换对称密钥,而对称密钥则用于大量数据的加解密。...用途:RSA广泛应用于数字签名、安全通信、身份验证等领域。 在Java中,可以使用java.security包中的类来实现RSA加密解密。

    42510

    非对称加密之RSA是怎么加密的

    对称加密中加密和解密使用的秘钥是同一个;非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密。 对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。...对称加密的安全性相对较低,非对称加密的安全性较高。 今天我们来讲的就是非对称加密中的 RSA 加密。 RSA加密是什么? RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。...这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。 通常情况下个人保存私钥,公钥是公开的(可能同时多人持有)。...(2)A传递自己的公钥给B,B用A的公钥对消息进行加密。 (3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。...(2)A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。 (3)B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。

    1.2K40

    黑客们都是如何给勒索软件加密的?

    RSA就是他们三人姓氏开头字母拼在一起组成的。1997年,解密了一个文件。...早在1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密。...小红收到以后,用自己的私钥,就可以解密了。那么班主任老师看到的是什么呢?是一团乱码。没有小红的私钥,班主任老师哪怕用世界上最强大的计算机,也没有办法在一百年内算出情书里面写的是什么。...同样的,如果一个写勒索软件的黑客,想要防止被人破解,他同样可以用RSA加密算法对受害人的数据进行加密,而使用的秘钥可以是网络上面下载的公钥,等用户付款以后,把私钥发给勒索软件进行解密。...而且,因为最后一步解密是用小明的公钥解密的,说明这个信息是来自小明,而不是其他人。 注意这里有点绕,通常我们是用公钥加密,私钥解密。但是这里进行了两次加密/解密过程,在内层,是用小明的私钥加密的。

    98490

    Android传输数据时加密详解

    ———————RSA非对称可逆加密——————— RSA加密原理概述: RSA的安全性依赖于大数的分解,公钥和私钥都是两个大素数(大于100的十进制位)的函数。...从一个密钥和密文推断出明文的难度等同于分解两个大素数的积 1.选择两个大素数 p,q ,计算 n=p*q; 2.随机选择加密密钥 e ,要求 e 和 (p-1)*(q-1)互质 3.利用 Euclid...速度一直是RSA的缺陷。一般来说只用于少量数据 加密。...代码中有些需要使用Base64再转换的,而java中不自带,Android中自带,所以自己写出一个来,方便Java后台使用....加密后的内容经Base64再加密转换了一下,所以先Base64解密回来再给RSA解密 byte[] decryptByte = RSAUtils.decryptData(

    1.3K20

    如何给产品经理解释什么是 RSA 加密(一)

    摄影:产品经理 与产品经理的健康生活 我们之前两篇文章已经介绍了如何在 Python 下面使用 RSA 加密,以及 python-rsa 这个库如何寻找两个大质数。...今天我们来介绍一下,RSA 加密是什么原理。 大家现在停下来,打开 Google 或者百度,搜索 RSA 加密原理。你会看到大量的文章,一上来就讲数学公式,根本看不懂他们在讲什么。...产品经理难以想象,怎么可能会存在一种加密系统,加密和解密使用的是不同的密码?有可能用 A 书来加密消息,用 B 书来解密消息吗?...但在真实的加密与解密场景,不可能用锁和铁盒子来传递消息,最终还是要使用密码。 那有一段消息,假设产品经理用 A 密码加密,传给 接收人,接收人用 B 密码加密,传回给产品经理。...此时,即时产品经理知道接收人用的是《白夜行》,但也没有办法把只把第一层密码给解开。 那么什么东西满足交换率呢?我们小学时候学的加法和乘法都满足交换率。

    55510

    加密解密(RSA)非对称加密算法

    RSARSA加解密是一种非对称加密算法,由三位数学家Rivest、Shamir和Adleman于1977年提出。它的概念是基于两个密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。...RSA算法的原理RSA算法的原理基于数论中的两个重要问题:大数分解和模幂运算。其核心思想是选择两个大素数p和q,计算它们的乘积n=p*q,并选择一个整数e作为公钥,满足e与(p-1)(q-1)互质。...解密操作为m ≡ C^d (mod n)。优点RSA算法的优点是安全性高,能够提供可靠的数据加密和解密。它的缺点是加密和解密的速度相对较慢,尤其是对于大数据量的处理。...应用场景RSA算法在实际应用中广泛使用,包括数字签名、密钥交换、安全通信等领域。它可以用于保护敏感信息的传输和存储,确保数据的机密性和完整性。...,将会生成一个名为public.key的文件和一个名为private.key的文件,其中public.key文件保存公钥,private.key文件保存私钥。

    21210

    真正“搞”懂HTTPS协议16之安全的实现

    最新的分组模式被称为 AEAD(Authenticated Encryption with Associated Data),在加密的同时增加了认证的功能,常用的是 GCM、CCM 和 Poly1305...二)非对称加密   对称加密看上去好像还不错,但是其中有一个很大的问题,就是通信的双方如何安全的把密钥传递给对方,术语叫做”密钥交换“。   ...而黑客因为没有私钥,所以就无法破解密文。   非对称加密算法的设计要比对称算法难得多,在 TLS 里只有很少的几种,比如 DH、DSA、RSA、ECC 等。...所以,真正的完整性必须要建立在机密性之上,在混合加密系统里用会话密钥加密消息和摘要,这样黑客无法得知明文,也就没有办法动手脚了。这有个术语,叫哈希消息认证码(HMAC)。...那,在现实生活中,我们通常通过签名、盖章、加身份证号,来在合同上确认你是谁,确认这份文件确实是你签署的,可以负法律责任了。

    70030

    安全的数据库图形管理工具(1):准备密钥

    对称加密是发送方用某种加密算法加密,接收方接收到密文之后再使用对应的解密算法解密,也就是加密和解密使用同一个密钥,如果中间人窃取了密文并破解那后果不堪设想。因此,更安全的非对称加密诞生了。...用程序生成公钥私钥我们需要使用模块rsa,如果没有该模块,请使用pip安装。 客户端程序 客户端需要生成自己的公钥私钥,并把公钥交给服务器保管,私钥自己留着。具体实现的细节我就不讲了,代码中有注释!..., private_key).decode()) # 解密接收到的加密数据并输出 服务器测试程序 与客户端测试程序一样,服务器测试程序依旧需要加载对方的的公钥和自己的私钥,然后把发送的数据用对方的公钥加密并发送给对方...最后解密接收的数据并输出。具体实现的细节我就不讲了,代码中有注释!...同样的,服务器程序执行结果如图所示。 ? 通过结果我们可以看出,客户端测试程序可以解密服务器用客户端公钥加密的数据,服务器测试程序也可以解密客户端用服务器公钥加密的数据。

    1.2K20

    java加解密实例

    序 本文主要小结一下java里头的AES以及RSA加解密。 AES 使用AES加密时需要几个参数: 密钥长度(Key Size) AES算法下,key的长度有三种:128、192和256 bits。...CBC模式对于每个待加密的密码块在加密前会先与前一个密码块的密文异或然后再用加密器加密。第一个明文块与一个叫初始化向量的数据块异或。...即”RSA”,默认是RSA/ECB/PKCS1Padding AES与RSA结合 RSA 比 AES 更难破解,因为它不需要担心密钥在传递过程中有泄露,只存在暴力破解一种可能; AES的优势是以分组为轮...,加解密速度非常快,一般而言,AES 速度上数百倍于 RSA 在实际应用中,我们会混合应用AES和RSA: 1、生成一个一次性随机密钥,算法上采用 AES 的CBC模式 aes-128-cbc(加密分组为...128比特)对文件进行加密 2、加密完成后,为了安全的传递这个一次性随机密钥,我们使用接收方的RSA公钥 对其进行加密,随加密后的文件一起发送 3、接收方使用RSA私钥进行解密,得到AES密钥原文,并用

    97220

    Android 安全

    加盐好处: 通常情况,当字段通过MD5加密,散列后的值是无法通过算法获取原始值,但是在一个大型的彩虹表中,通过在表中搜多该MD5值,有可能短时间获取散列值。...,使它们MD5值相同非常困难 MD5用途 文件校验,对文件进行MD5校验,就能得到文件在传输过程中有没有被篡改 密码加密 MD5加密方法 初始化MessageDigest对象 传入需要计算的字符串,先使用...用私钥加密必须通过公钥解密,用公钥加密必须通过私钥解密 密钥不要低于512位,512位与1024位都已经被成功破解,所以建议使用2048位密钥长度,进行数字签名 android系统的RSA实现是"RSA.../None/NoPadding",而标准JDK实现是"RSA/None/PKCS1Padding" ,这样会造成了在android机上加密后无法在服务器上解密的原因,所以得统一成JDK标准实现 RSA非对称加密内容长度有限制...RSA算法原理如下: 随机选择两个大质数p和q,p不等于q,计算N=pq; 选择一个大于1小于N的自然数e,e必须与(p-1)(q-1)互素 用公式计算出d:d×e = 1 (mod (p-1)(q-1

    1.1K10

    详解 RSA 非对称加密

    非对称加密,全站HTTPS等,深入了解,总会遇到RSA加密算法。在一些特殊行业,如博主工作的互联网金融,RSA加密算法的重要性更是非同一般。...但是如果有一个黑客H告诉C自己是S,并将自己的假公钥发送给C,那么C用假公钥加密数据并将数据发送给了H,那么H就顺利得到了信息,无法起到数据加密的作用。...含有私钥,同时可以有公钥,有口令保护 格式一般为 .pfx。 由于它可以加密码保护,打开时需要一串特殊密码,所以相对安全些。...证书和密钥文件格式 需要注意:证书文件格式与加密标准并没有严格的对应关系,证书文件格式是存储证书的方式不同,可能存储的内容也略有不同。而加密标准是使用证书文件进行加解密的方式不同。...可以查看一定时间内某算法计算的次数,让我们对各种加密算法的速度有一个大概的认识。

    1.6K20

    再谈加密-RSA非对称加密的理解和使用

    非对称加密,全站HTTPS等,深入了解,总会遇到RSA加密算法。在一些特殊行业,如博主工作的互联网金融,RSA加密算法的重要性更是非同一般。...但是如果有一个黑客H告诉C自己是S,并将自己的假公钥发送给C,那么C用假公钥加密数据并将数据发送给了H,那么H就顺利得到了信息,无法起到数据加密的作用。...含有私钥,同时可以有公钥,有口令保护 格式一般为 .pfx。 由于它可以加密码保护,打开时需要一串特殊密码,所以相对安全些。...,可以查看一定时间内某算法计算的次数,让我们对各种加密算法的速度有一个大概的认识。...作为一个PHPer,当然还要提一下在 PHP 中如何使用 RSA 加密,所用工具依然是强大的openssl扩展: # 从pfx文件中提取私钥和证书(需要传入密码 $password): openssl_pkcs12

    2.6K90

    iOS加密算法总结

    它是一个对称算法:加密和解密用的是同一个算法。       密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略,所以密钥长度为56位。...明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。...Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形。...例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一 标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL...RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,       因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥

    2.4K120

    RSA 算法简述

    RSA算法的安全性依赖于大数分解,对于一个大数N,没有有效的方法能够将其分解,从而在已知(N,D)的情况下,无法获得E,同样在已知(N,E)的情况下无法求得D。...别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用 数字2,就是我的私钥,来解密。这样我就可以保护数据了。 我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。...公钥算法 公钥加密算法,也就是非对称加密算法,这种算法加密和解密的密码不一样,一个是公钥,另一个是私钥: 公钥和私钥成对出现 公开的密钥叫公钥,只有自己知道的叫私钥 用公钥加密的数据只有对应的私钥可以解密...由于在非对称算法中,公钥加密的数据必须用对应的私钥才能解密,而私钥又只有接收方自己知道,这样就保证了数据传输的安全性。 ?...当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。 当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他看到。即安全传输。

    2.4K20

    java中的签名和证书那些事

    2.1 对称加密 对称加密算法的加密与解密密钥相同,还有一些不需要密钥的散列算法。 常见的对称加密算法主要有 DES、3DES、AES 等,散列算法主要有 SHA-1、MD5 等。...常见的 非对称算法 主要有 RSA、DSA 等 rsa加密有两种使用方式: 第一是对文件内容加密,这种用途需要发送方用公钥对文件加密,接收方用私钥对文件解密。...这种方式下,文件在网络传输中都是密文,那么在发送方要用rsa公钥加密.接收方用私钥解密.所以只有私钥的接收方才能解密,看到原文.这是rsa单纯用于文件加密的用途....第二是对文件的sha256签名进行加密,这种方式下,发送方要用私钥对签名进行加密,接收方用公钥进行解密。这种方式下,原文件不加密,rsa与sha265签名算法, 生成的密文放在文件的开头。...可完成对文件的验证.即该文件在传输过程中有没有被修改过.如果被修改过,即验证失败.而crc校验,只能验证文件的完整性. 如果被修改, 则验证不出来. 公钥与私钥标准: PKCS8是私钥证书标准.

    1.6K20

    【网络安全】网络防护之旅 - 非对称密钥体制的解密挑战

    RSA算法 算法简介: RSA是一种常用的非对称加密算法,基于大整数的因子分解难题。 密钥生成: 包括生成两个大素数、计算模数和公私钥指数。 加密过程: 使用接收者的公钥对明文进行加密。...解密过程: 接收者使用自己的私钥对密文进行解密。 运行RSA算法实现对字符串的加解密 实验环境搭建: 在合适的开发环境中配置RSA算法所需的库和工具。...字符串加密: 利用RSA算法对给定字符串进行加密,确保仅有拥有私钥的一方能够解密。 字符串解密: 使用相应的私钥对加密后的字符串进行解密,还原原始明文。...实验效果与应用场景 验证正确性: 确保加解密的过程符合RSA算法的规范。 应用场景: 探讨RSA算法在实际场景中的应用,如安全通信、数字签名等。...RSA算法的安全性基于大整数分解的困难性,即在已知某数的乘积的情况下,难以找到它的因子。以下是RSA算法的详细介绍: 1. 密钥生成: 选择两个大素数(p和q): 随机选择两个大素数p和q。

    21910

    OpenSSL - RSA非对称加密实现

    非对称加密:即两端使用一对不同的密钥进行加密。 在非对称加密中,需要两对密钥,公钥和私钥。 公钥个私钥属于对立关系,一把加密后,只有另一把才可以进行解密。...私钥数字签名 私钥进行数据加密,所有人用公钥都能解密数据,但是加密后的数据却唯有私钥能生成。可以用于消息来源验证。...将数据用私钥加密并明文告诉用户密文内容,用户进行公钥解密比较确认数据来源可靠。 在非对称加密算法中有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。...其中RSA加密最为广泛利用,毫不夸张地说,只要有计算机网络的地方,就有RSA算法。 其原理为数论中一个公认的定论:两个大素数相乘非常容易,但是这个数要分解成二个质数的积,非常困难。...',LIBS = ['ssl','crypto']) 执行可执行文件,输入文件路径,即可查看到经过RSA加密后的数据内容和解密后的内容。

    3.2K90

    滴滴被罚,数据安全该怎么做?——大数据安全入门宝典

    监控报警机制就更为重要,当出现了问题的时候,应该第一时间就发现问题所在。 加密是一个大的概念,对于敏感信息的处理,加密是一种手段,但不仅仅是加密那么简单。...缺点是密钥的传输比较麻烦。 实际中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到AES密钥,然后发送方和接收方用AES密钥来通信。...RSA加密算法是1978年提出的。经过多年的分析和研究,在众多的公开密钥加密算法中,RSA加密算法最受推崇,它也被推荐为公开密钥数据加密标准。...RSA 加密算法 基于一个十分简单的数论事实:将两个大 素数 相乘十分容易,但想要对其乘积进行 因式分解 却极其困难,因此可以将 乘积 公开作为 加密密钥。...RSA加密算法是非对称加密算法,非对称加密算法的加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。

    58520
    领券