1. 如何使用RSA签名给给信息加密和解密
{
publicstaticfinalStringKEY_ALGORITHM="RSA";
_ALGORITHM="MD5withRSA";
_KEY="RSAPublicKey";
_KEY="RSAPrivateKey";
/**
*用私钥对信息生成数字签名
*
*@paramdata
*加密数据
*@paramprivateKey
*私钥
*
*@return
*@throwsException
*/
publicstaticStringsign(byte[]data,StringprivateKey)throwsException{
//解密由base64编码的私钥
byte[]keyBytes=decryptBASE64(privateKey);
//构造PKCS8EncodedKeySpec对象
=newPKCS8EncodedKeySpec(keyBytes);
//KEY_ALGORITHM指定的加密算法
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
//取私钥匙对象
PrivateKeypriKey=keyFactory.generatePrivate(pkcs8KeySpec);
//用私钥对信息生成数字签名
Signaturesignature=Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(priKey);
signature.update(data);
returnencryptBASE64(signature.sign());
}
/**
*校验数字签名
*
*@paramdata
*加密数据
*@parampublicKey
*公钥
*@paramsign
*数字签名
*
*@return校验成功返回true失败返回false
*@throwsException
*
*/
publicstaticbooleanverify(byte[]data,StringpublicKey,Stringsign)
throwsException{
//解密由base64编码的公钥
byte[]keyBytes=decryptBASE64(publicKey);
//构造X509EncodedKeySpec对象
X509EncodedKeySpeckeySpec=newX509EncodedKeySpec(keyBytes);
//KEY_ALGORITHM指定的加密算法
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
//取公钥匙对象
PublicKeypubKey=keyFactory.generatePublic(keySpec);
Signaturesignature=Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initVerify(pubKey);
signature.update(data);
//验证签名是否正常
returnsignature.verify(decryptBASE64(sign));
}
/**
*解密<br>
*用私钥解密
*
*@paramdata
*@paramkey
*@return
*@throwsException
*/
publicstaticbyte[]decryptByPrivateKey(byte[]data,Stringkey)
throwsException{
//对密钥解密
byte[]keyBytes=decryptBASE64(key);
//取得私钥
=newPKCS8EncodedKeySpec(keyBytes);
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
KeyprivateKey=keyFactory.generatePrivate(pkcs8KeySpec);
//对数据解密
Ciphercipher=Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.DECRYPT_MODE,privateKey);
returncipher.doFinal(data);
}
/**
*解密<br>
*用私钥解密
*
*@paramdata
*@paramkey
*@return
*@throwsException
*/
publicstaticbyte[]decryptByPublicKey(byte[]data,Stringkey)
throwsException{
//对密钥解密
byte[]keyBytes=decryptBASE64(key);
//取得公钥
X509EncodedKeySpecx509KeySpec=newX509EncodedKeySpec(keyBytes);
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
KeypublicKey=keyFactory.generatePublic(x509KeySpec);
//对数据解密
Ciphercipher=Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.DECRYPT_MODE,publicKey);
returncipher.doFinal(data);
}
/**
*加密<br>
*用公钥加密
*
*@paramdata
*@paramkey
*@return
*@throwsException
*/
publicstaticbyte[]encryptByPublicKey(byte[]data,Stringkey)
throwsException{
//对公钥解密
byte[]keyBytes=decryptBASE64(key);
//取得公钥
X509EncodedKeySpecx509KeySpec=newX509EncodedKeySpec(keyBytes);
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
KeypublicKey=keyFactory.generatePublic(x509KeySpec);
//对数据加密
Ciphercipher=Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.ENCRYPT_MODE,publicKey);
returncipher.doFinal(data);
}
/**
*加密<br>
*用私钥加密
*
*@paramdata
*@paramkey
*@return
*@throwsException
*/
publicstaticbyte[]encryptByPrivateKey(byte[]data,Stringkey)
throwsException{
//对密钥解密
byte[]keyBytes=decryptBASE64(key);
//取得私钥
=newPKCS8EncodedKeySpec(keyBytes);
KeyFactorykeyFactory=KeyFactory.getInstance(KEY_ALGORITHM);
KeyprivateKey=keyFactory.generatePrivate(pkcs8KeySpec);
//对数据加密
Ciphercipher=Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.ENCRYPT_MODE,privateKey);
returncipher.doFinal(data);
}
/**
*取得私钥
*
*@paramkeyMap
*@return
*@throwsException
*/
(Map<String,Object>keyMap)
throwsException{
Keykey=(Key)keyMap.get(PRIVATE_KEY);
returnencryptBASE64(key.getEncoded());
}
/**
*取得公钥
*
*@paramkeyMap
*@return
*@throwsException
*/
(Map<String,Object>keyMap)
throwsException{
Keykey=(Key)keyMap.get(PUBLIC_KEY);
returnencryptBASE64(key.getEncoded());
}
/**
*初始化密钥
*
*@return
*@throwsException
*/
publicstaticMap<String,Object>initKey()throwsException{
KeyPairGeneratorkeyPairGen=KeyPairGenerator
.getInstance(KEY_ALGORITHM);
keyPairGen.initialize(1024);
KeyPairkeyPair=keyPairGen.generateKeyPair();
//公钥
RSAPublicKeypublicKey=(RSAPublicKey)keyPair.getPublic();
//私钥
RSAPrivateKeyprivateKey=(RSAPrivateKey)keyPair.getPrivate();
Map<String,Object>keyMap=newHashMap<String,Object>(2);
keyMap.put(PUBLIC_KEY,publicKey);
keyMap.put(PRIVATE_KEY,privateKey);
returnkeyMap;
}
}
2. 德国密码学家破解了RSA加密系统,这意味着什么
RSA是RonRivest、AdiShamir和LeonardAdleman于共同提出的加密算法。该算法利用大的少数分解困难的特性,大的少数成绩很难分解,所以这个密码很难破解。解密密码需要很多计算。克劳斯彼得施诺是德国法兰克福大学数学和计算机科学系教授,是着名的数学家和密码学家,Schnorr签名算法是以他的名字命名的。
宏恶意软件一直是黑客们的热门选择。微软多年来一直使用防恶意软件检查界面(AMSI)来删除宏恶意软件,但成功删除用VBA编写的宏脚本的努力最终将攻击者推入了名为XLM的旧宏语言。该语言与1992年与Excel 4.0一起出现。XLM在1993年被VBA取代,但部分客户仍然使用XLM,因此Excel仍然支持它。
3. 有没有一种软件能用RSA的私钥进行加密,然后用公钥进行解密的
1、用公钥加密,用私钥解密。
2、给别人发信息,就从服务器上拉下来别人的公钥,加密后发给他。
3、对方拿到信息后用自己的私钥解密。
4、这样,公钥加密后除了私钥持有人,别人都看不到信息。
5、若是用私钥加密,那么公钥都能解密,还有何安全性可言?
6、私钥加密的场合只有一个,那就是数字签名,用来表明这个信息来源于你。
4. 1.如何用DES实现文件加密解密 2.如何用RSA实现文件加密解密 急!!!!!!!!!
用文件夹加密超级大师加密电脑中重要的文件是最安全
文件夹加密超级大师
强大易用的加密软件,具有文件加密、文件夹加密、数据粉碎、彻底隐藏硬盘分区、禁止或只读使用USB设备等功能。
文件夹加密和文件加密时有最快的加密速度,加密的文件和加密的文件夹有最高的加密强度,并且防删除、防复制、防移动。
还有方便的加密文件夹和加密文件的打开功能(临时解密),让您每次使用加密文件夹或加密文件后不用重新加密!
实用的数据粉碎删除和硬盘分区彻底隐藏、禁止使用USB设备、只读使用U盘和移动硬盘等安全辅助功能使
文件夹加密超级大师成为一款不可思议的文件加密软件和文件夹加密软件。
5. 求RSA加密软件!
我推荐您用文件夹加密超级大师试试。
文件夹加密超级大师支持所有windows系统,可以加密文件夹,加密文件,保护磁盘和数据粉碎,使用起来非常方便。
在需要加密的文件和文件夹上单击鼠标右键选择加密就可以了。
解密时只要双击加密的文件夹和文件,输入正确的密码就可以解密。
文件夹加密超级大师加密后的文件和文件夹可以防止删除、复制和移动。
相对于其他的文件夹加密软件和文件加密软件,功能和性能还有操作都更加的出色。
并且有微软、360和金山的安全认证,是一款绝对安全的文件夹加密软件。
您可以到网络上下载文件夹加密超级大师来给您的文件和文件夹加密,看看使用效果怎么样?
6. 如何使用rsatool 进行解密
RSA算法是第一个能同时用于加密和数字签名的算法。RSA算法能生成公私钥对。 假设A、B要通信,那么他们需要彼此知道对方的公钥,如果a向b发送信息,a先用自己的私钥对信息进行加密(即签名),然后用b的公钥进行加密。当 b收到消息时,先用自己的...
7. 求个好用的文件加密软件(不会出问题的,不容易被破揭的)
http://www.skycn.com/sort/sort2100600_indate_DESC_1.html
这些加密工具都不错,你用用看吧。我感觉用着挺不错的。
文件夹加密超级大师 V10.82 [加密工具] 2006-12-12 3425 KB 355212
强大的文件和文件夹加密软件,还具有彻底隐藏磁盘以及禁止使用或只读使用USB存储设备、数据粉碎删除等功能。 软件特色功能: 1 对文件夹具有五种加密方法: 闪电...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
超级秘密文件夹 V2.80 [加密工具] 2006-12-28 2679 KB 6943
让你的重要数据和个人隐私更加保密和安全的加密软件。超级秘密文件夹安装后不留任何痕迹,其他人绝对想不到你的机器上安装的有加密软件,当然也想不到你的机器上有加密的文件夹。...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
虚拟加密U盘 V3.0 [加密工具] 2006-12-28 828 KB 15747
安装完"虚拟加密U盘"后,你的计算机上将会出现一个和真正U盘一摸一样的虚拟U盘,通过它就可以轻松的将你的私密数据保护起来,它的安全级别高,操作简单,具有以下特点: * 安全级别...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
Advanced Encryption Package 20... [加密工具] 2006-12-28 3017 KB 6212
是一个高级的的密码外壳程序,制作出来的文件不需要AEP便可执行。采行军用级编码标准,支持以448bit编码的Blowfish和128bit编码的DES,程序还支持面版更换。
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
Advanced Encryption Package 20... [加密工具] 2006-12-28 3271 KB 6546
是一个高级的的密码外壳程序,制作出来的文件不需要AEP便可执行。采行军用级编码标准,支持以448bit编码的Blowfish和128bit编码的DES,程序还支持面版更换。
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
MiniPGP V1.0 [加密工具] 2006-12-28 667 KB 1
PGP是个很好用的文件加解密工具.但是其体积过于庞大,不便于携带,导致很多朋友望而却步. 本软件顾名思义是PGP加解密工具的精简版本,如果你想和朋友之间加解密一些文件而又不想...
授权:免费版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
QQ聊天语音打字专家 2007 V4.1 [加密工具] 2006-12-27 3759 KB 31746
一款QQ语音聊天打字软件,可以实现不用打字,直接用语音进行输入,从而实现文字聊天的软件。不仅可以在QQ中使用,还可以在MSN、雅虎通、新浪UC、GoogleTalk、Word、记事本、写字板等...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
私人文件保密专家 V7.05 白金版 [加密工具] 2006-12-27 1999 KB 79589
《私人文件保密专家》一款专业的文件和文件夹加密工具。具有界面漂亮友好、简单易用、功能强大和兼容性好的特点,可以帮助你将重要的文件,文件夹,图片,文档,多媒体文件或者任意类型...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
超级加密 3000 V8.80 [加密工具] 2006-12-27 3303 KB 68589
功能强大的文件,文件夹加密软件。 本软件采用先进、成熟的加密算法,让你的加密数据无懈可击。并且速度也特快,每秒可加密25 — 50M的数据。 加密文件打开使用完毕后,自动恢...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
E-神加密文件夹 V2007 Build 061... [加密工具] 2006-12-26 3438 KB 242438
E-神加密文件夹 2007 是一款功能强劲,界面豪华,操作简便的文件夹加密软件,使用本软件您可以轻易地将您的私人资料实现加密保存!本软件采用成熟的RSA算法,让您的秘密更秘密!不仅...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
友锋加密器 V3.0 简体中文版 [加密工具] 2006-12-26 1950 KB 1054
友锋加密器集文件加密与压缩、文件夹加密与压缩、文件夹保护等功能于一身,可以对文件、文件夹进行加密,安全性极高。同时可以对文件、文件夹进行压缩,具有较高的压缩率。加密后的...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
文件夹加密大师 3000 V7.0 钛金版... [加密工具] 2006-12-26 3244 KB 18499
《文件夹加密大师3000钛金版》是一款专业的文件夹加密工具。具有界面漂亮友好【可以换多达60种皮肤】、简单易用、功能强大和兼容性好的特点,从技术角度来讲,使用的加密技术在国内...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
E-神加密文件夹 V2006 Build 061... [加密工具] 2006-12-25 4974 KB 13256
E-神加密网络版是专为企业用户量身定做的,支持远程网络操作;本程序安装后不留任何痕迹,使用时只要按一下Ctrl+Shift+E组合键[可更改]即可呼出!让别人根本感觉不到您使用了加密软...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
GLSSPY-WJJ超级特工秘密文件夹 V... [加密工具] 2006-12-25 1595 KB 10685
网上最流行最酷最好用的文件夹加密工具!文件夹保密之必备工具个人隐私保护最佳选择,载誉众多,外观优美小巧玲珑,专业保密的功效出类拔萃。豪华版启用全新加密内核,更多专业超...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
枫叶文件加密器 V1.09 [加密工具] 2006-12-25 14807 KB 35339
枫叶文件加密器是对文件进行快速加解密的一个免费绿色小软件。特点:1、采取高速不可反逆算法,在加密包里不包含任何密码信息,唯一的破解方法就是穷举密码;2、为了方便日常频繁加...
授权:免费版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
私人磁盘 V4.28 Pro 正式版 [加密工具] 2006-12-25 3058 KB 31459
本软件能够将各个磁盘分区中的剩余空间从各分区中分离出来,并虚构一个磁盘分区供您使用。该虚拟的磁盘分区和实际的磁盘分区完全一样。您可以在其中存放您的资料,也可以将软件,游...
授权:共享版 | 插件情况: 镜像:[电信 | 网通 | 铁通 | 联通]
王者加密解密大师 V1.50 [加密工具] 2006-12-25 1475 KB 818
这是一款由王者科技开发的专业的加密解密软件,它可以对任何你想加密的文件进行加密解密,这就是说你可以用它对各种文件进行加密,如:文本文件(txt)、图像文件(jpg,gif,bmp,tif)、...
授权:共享版 | 插件情况:
8. 寻 RSA解密,加密过程
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。
这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。
RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。
更具体参考《密码学》