社区
图形处理/算法
帖子详情
谁知道3des中pkcs5填充方式怎么弄?和pkcs7填充有什么不同?
zero1977
2004-08-04 11:59:22
谁知道3des中pkcs5填充方式怎么弄?和pkcs7填充有什么不同?
...全文
887
4
打赏
收藏
谁知道3des中pkcs5填充方式怎么弄?和pkcs7填充有什么不同?
谁知道3des中pkcs5填充方式怎么弄?和pkcs7填充有什么不同?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
名牌大灰狼
2004-08-26
打赏
举报
回复
import java.security.*;
import javax.crypto.*;
//
// encrypt and decrypt using the DES private key algorithm
public class PrivateExample {
public static void main (String[] args) throws Exception {
//
// check args and get plaintext
if (args.length !=1) {
System.err.println("Usage: java PrivateExample text");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
//
// get a DES private key
System.out.println( "\nStart generating DES key" );
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
keyGen.init(56);
Key key = keyGen.generateKey();
System.out.println( "Finish generating DES key" );
//
// get a DES cipher object and print the provider
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
System.out.println( "\n" + cipher.getProvider().getInfo() );
//
// encrypt using the key and the plaintext
System.out.println( "\nStart encryption" );
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(plainText);
System.out.println( "Finish encryption: " );
System.out.println( new String(cipherText, "UTF8") );
//
// decrypt the ciphertext using the same key
System.out.println( "\nStart decryption" );
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println( "Finish decryption: " );
System.out.println( new String(newPlainText, "UTF8") );
}
}
■私钥密码术样本执行
D:\IBM>java PrivateExample "This is a test!"
Start generating DES key
Finish generating DES key
SunJCE Provider (implements DES, Triple DES, Blowfish, PBE, Diffie-Hellman,
HMAC-MD5, HMAC-SHA1)
Start encryption
Finish encryption:
Kdkj4338*3n1#kxkgtixo4
Start decryption
Finish decryption:
This is a test!
名牌大灰狼
2004-08-26
打赏
举报
回复
什么是填充?
如前所述,如果使用分组密码而消息长度不是块长度的整数倍,那么,必须用字节填充最后一个块以凑成完整的块大小。有许多方法填充块,譬如全用零或一。在本教程中,我们将对私钥加密使用PKCS5 填充,而对公钥加密使用PKCS1。
使用PKCS5 时,由一个其值表示剩余字节数的重复字节来填充短块。我们不会在本教程中更深入地讨论填充算法,但您需要了解的信息是,JDK 1.4 支持下列填充技术:
无填充
·PKCS5
·OAEP
·SSL3
BouncyCastle 库(请参阅第三方库充实了安全性和参考资料)支持其它填充技术。
hujack
2004-08-26
打赏
举报
回复
是加密吗?
yturieo
2004-08-16
打赏
举报
回复
太专业,帮你顶。
3D
ES
加解密/
PKCS5
Padding/
PKCS7
Padding
本文介绍了一个使用
3D
ES
算法进行加密和解密的Java示例,包括ECB模式和
PKCS7
填充
方式
的实现。示例展示了如何生成密钥、加密数据并将其转换为Base64编码的字符串形式,以及如何解密该字符串回原始数据。
PHP实现
3D
ES
加密,加密模式MCRYPT_MODE_CBC,
填充
方式
PKCS7
PADDING,密钥不足补0
本文详细介绍了
3D
ES
加密算法的工作原理及其在PHP
中
的实现过程。
3D
ES
作为一种重要的加密手段,通过对数据进行三次D
ES
加密,提高了数据的安全性。文章还探讨了加密过程
中
使用的
不同
填充
方式
及其意义。
Java版适用于PHP版
3D
ES
加密解密(PHP语言开发的MCRYPT_
3D
ES
算法、MCRYPT_MODE_ECB模式、
PKCS7
填充
方式
)
本文提供了一种使用Java实现的
3D
ES
加密解密方法,该方法兼容PHP的MCRYPT_
3D
ES
算法、MCRYPT_MODE_ECB模式及
PKCS7
填充
方式
。通过具体的代码示例,展示了如何对字符串进行加密与解密。
3D
ES
数据加密算法
3D
ES
是一种可逆的对称加密算法,作为D
ES
的加强版,通过3次迭代增强安全性。本文介绍了
3D
ES
的加密原理、安全性和在线工具的使用,包括
填充
模式(
PKCS5
、
PKCS7
、NONE)以及密钥和初始化向量IV的处理。虽然已被A
ES
取代,
3D
ES
仍然是理解对称加密的重要概念。
3D
ES
加密算法原理
本文详细介绍了
3D
ES
加密算法,它是D
ES
的一个加强版,通过三次加密提高安全性。
3D
ES
加密过程包括三次D
ES
操作,解密则按相反顺序进行。在Java
中
实现
3D
ES
加密解密,涉及SecretKeySpec、Cipher等类的使用。文章还提到了加密过程
中
的
填充
策略,如NoPadding、ZerosPadding和
PKCS5
Padding。提供了
3D
ES
加密和解密的Java代码示例。
图形处理/算法
19,464
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章