java实现密码学rsa算法_密码学实验(RSA完整算法).docx

密码学实验

——RSA算法实现

姓名:

班级:

学号:

教师:

助教:

程序功能函数定义

public static String toHexString(byte[] b)

——格式转换函数

public KeyPair generateKey() throws NoSuchAlgorithmException

——密钥对生成函数

protected byte[] PKCS1Ecryption(RSAPublicKey publicKey, String Data)

——PKCS1机制下RSA加密函数

protected byte[] PKCS1DeEcryption

(RSAPrivateKey

privateKey, byte[] raw)

——PKCS1机制下RSA解密密函数

protected byte[] OAEPEcryption(RSAPublicKey publicKey, String Data)

——OAEP机制下RSA加密函数

protected byte[] OAEPDeEcryption

(RSAPrivateKey

privateKey, byte[] raw)

——OAEP机制下RSA解密密函数

public static void main(String[] args)

——主函数(Main)

程序功能函数说明(含返回、参数)

public KeyPair generateKey() throws NoSuchAlgorithmException

入口参数:无

返回类型:KeyPair类(JAVA库类)——密钥对

函数功能:利用系统随机源(且这里指定密钥长度为512bit)与指定的算法类(RSA)构造一对密钥对

protected byte[] PKCS1Ecryption(RSAPublicKey publicKey, String Data)

入口参数:RSA公钥类publickey和字符串类data

返回类型:字节数组类——密文形式

函数功能:能将原明文首先转化成字节数组形式,并且利用加密库Cipher与Security指定PKCS1机制下的RSA加密算法对明文加密并且以字节数组的形式返回加密后得到的密文

protected byte[] OAEPEcryption(RSAPublicKey publicKey, String Data)

入口参数:RSA公钥类publickey和字符串类data

返回类型:字节数组类——密文形式

函数功能:能将原明文首先转化成字节数组形式,并且利用加密库Cipher与Security指定OAEP机制下的RSA加密算法对明文加密并且以字节数组的形式返回加密后得到的密文

protected byte[] PKCS1DeEcryption

(RSAPrivateKey privateKey, byte[] raw)

入口参数:RSA私钥类privatekey和字节数组类raw

返回类型:字节数组类——明文形式

函数功能:利用加密库Cipher与Security指定PKCS1机制下的RSA解密算法对密文解密并且以字节数组的形式返回解密后得到的明文

protected byte[] OAEPDeEcryption

(RSAPrivateKey privateKey, byte[] raw)

入口参数:RSA私钥类privatekey和字节数组类raw

返回类型:字节数组类——明文形式

函数功能:利用加密库Cipher与Security指定OAEP机制下的RSA解密算法对密文解密并且以字节数组的形式返回解密后得到的明文

public static String toHexString(byte[] b)

入口参数:字节数组

返回类型:字符串

函数功能:将任意的字节数组转换成ASCII码形式的(十六进制)字符串,便于在屏幕上显示和方便阅读

public static void main(String[] args)

入口参数:字符串(主函数只可一次调用)

返回类型:无

函数功能:提供用户手动输入,由用户指定需要加密的明文和加密的机制(3项选择),生成密钥对并对明文加密再对密文解密,最后全部显示出来供用户审阅

编程关键与疑难解决

本次编程实验重在掌握加密库的使用,这里JAVA(JDK1.7)提供了两大库——Cipher与Security,正确利 用它们进行RSA加密是本实验的关键所在

老实说,由于这两大库内容很多比较复杂,自己慢慢研究是很费时间的,于是我在网上查找文档和资料,需求论坛高手解答,最终确定主要用到以下库类:

java.security.KeyPair;

java.security.KeyPairGenerat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值