dec和rsa有什么区别

dec和rsa有什么区别,第1张

性质区别。

RSA:公开密钥密码体制是一种使用不同的加密密钥与解密密钥。DES:它是一种对称的加密算法,所谓对称,就是它的加密和解密。

DES算法及优点是密钥短,让帆加纯滑凯密处理简单,加做唤密解密速度快,适用于加密大量数据的场合。

做网站有时会处理一些上传下载的文件 可能会用到加解颤此密功能 以下是一个加解密方法

Java代码

import java io File

import java io FileInputStream

import java io FileOutputStream

import java io IOException

import nf Conf

import mon time TimeHandler

/**

* 加解密单元

* @author lupingui

* : :

*/

public class EncryptDecrypt {

//加解密KEY 这个不能变动 这里可以由任意的字符组成 尽量用特殊字符

static final byte[] KEYVALUE = getBytes()

//读取字节的长度

static final int BUFFERLEN =

//加密临时存储目录

static final String TRANSIT_DIR_ENC =

//解密临时存储目录

static final String TRANSIT_DIR_DEC =

/**

* 文件加密

* @param oldFile 待加密文件

* @param saveFileName 加密后文件保存路径

* @return

* @throws IOException

*/

public static boolean encryptFile(File oldFile String saveFileName) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

老誉if (!oldFile exists() || !oldFile isFile()){

return false

}

FileInputStream in = new FileInputStream(oldFile)

//加密后存储的文件茄含迅

File file = new File(saveFileName)

if (!file exists()){

return false

}

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(file)

int c pos keylen

pos =

keylen = KEYVALUE length

byte buffer[] = new byte[BUFFERLEN]

while ((c = in read(buffer)) != ) {

for (int i = i <ci++) {

buffer[i] ^= KEYVALUE[pos]

out write(buffer[i])

pos++

if (pos == keylen){

pos =

}

}

}

in close()

out close()

return true

}

/**

* 文件加密

* @param oldFile:待加密文件

* @param saveFile 加密后的文件

* @return

* @throws IOException

*/

public static boolean encryptFile(File oldFile File saveFile) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile() || !saveFile exists() || !saveFile isFile()){

return false

}

FileInputStream in = new FileInputStream(oldFile)

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(saveFile)

int c pos keylen

pos =

keylen = KEYVALUE length

byte buffer[] = new byte[BUFFERLEN]

while ((c = in read(buffer)) != ) {

for (int i = i <ci++) {

buffer[i] ^= KEYVALUE[pos]

out write(buffer[i])

pos++

if (pos == keylen){

pos =

}

}

}

in close()

out close()

return true

}

/**

* 文件加密

* @param oldFile 待加密文件

* @return

* @throws IOException

*/

public static File encryptFile(File oldFile) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null

}

FileInputStream in = new FileInputStream(oldFile)

//临时加密文件存储目录

File dirFile = new File(TRANSIT_DIR_ENC)

//如果临时存储目录不存在或不是目录则直接返回

if (!dirFile exists() || !dirFile isDirectory()){

return null

}

//加密后存储的文件

File file = new File(dirFile enc_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName())

if (!file exists()){

file createNewFile()

}

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(file)

int c pos keylen

pos =

keylen = KEYVALUE length

byte buffer[] = new byte[BUFFERLEN]

while ((c = in read(buffer)) != ) {

for (int i = i <ci++) {

buffer[i] ^= KEYVALUE[pos]

out write(buffer[i])

pos++

if (pos == keylen){

pos =

}

}

}

in close()

out close()

//返回加密后的文件

return file

}

/**

* 文件加密

* @param oldFileName 待加密文件路径

* @return

* @throws IOException

* @throws Exception

*/

public static File encryptFile(String oldFileName) throws IOException {

//如果待加密文件路径不正确则直接返回

if (oldFileName == null || oldFileName trim() equals( )){

return null

}

//待加密文件

File oldFile = new File(oldFileName)

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null

}

//调用文件加密方法并返回结果

return encryptFile(oldFile)

}

/**

* 文件解密

* @param oldFile 待解密文件

* @return

* @throws IOException

*/

public static File decryptFile(File oldFile) throws IOException{

//如果待解密文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null

}

FileInputStream in = new FileInputStream(oldFile)

//临时解密文件存储目录

File dirFile = new File(TRANSIT_DIR_DEC)

//如果临时解密文件存储目录不存在或不是目录则返回

if (!dirFile exists() || !dirFile isDirectory()){

return null

}

//解密存储文件

File file = new File(dirFile dec_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName() substring(oldFile getName() lastIndexOf( )))

if (!file exists()){

file createNewFile()

}

//读取待解密文件并进行解密存储

FileOutputStream out = new FileOutputStream(file)

int c pos keylen

pos =

keylen = KEYVALUE length

byte buffer[] = new byte[BUFFERLEN]

while ((c = in read(buffer)) != ) {

for (int i = i <ci++) {

buffer[i] ^= KEYVALUE[pos]

out write(buffer[i])

pos++

if (pos == keylen){

pos =

}

}

}

in close()

out close()

//返回解密结果文件

return file

}

/**

* 文件解密

* @param oldFileName 待解密文件路径

* @return

* @throws Exception

*/

public static File decryptFile(String oldFileName) throws Exception {

//如果待解密文件路径不正确则直接返回

if (oldFileName == null || oldFileName trim() equals( )){

return null

}

//待解密文件

File oldFile = new File(oldFileName)

//如果待解密文件不存在或不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null

}

//调用文件解密方法并返回结果

return decryptFile(oldFile)

}

lishixinzhi/Article/program/Java/hx/201311/26983


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12368785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存