面向对象基础知识之文件加密解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象基础知识之文件加密解密相关的知识,希望对你有一定的参考价值。

参考技术A 文件加密解密是开发中经常用到的一个功能点,常见于客户端项目,需要对配置数据、参数设置、数据字典等需要隐匿,来增强客户端的安全性。

本章我们介绍两种常见文件加密解密方法

1.自定义加密解密函数,思路是文件转成Byte[],对byte元素使用对称加密算法对齐加密。加密后的byte[]转成base64。解密文件使用base64加密的byte[]解密即可生成原文件。

2.使用 System.Security.Cryptography. RijndaelManaged,这种加密需要提供32位密码和16位向量密码

//加密

string pwd = "gjhdjfhdjdkdssajdjfkdjfdlijfadsd" ; //32位,密码

string ivpwd = "gjhdjfhdjdkdssad" ; //16位,向量密码

RijndaelManaged aes = new RijndaelManaged();

byte [] pwdBytes = System.Text.Encoding.UTF8.GetBytes(pwd);

aes.Key = pwdBytes;

aes.IV = Encoding.UTF8.GetBytes(ivpwd);

aes.Mode = CipherMode.CBC;

aes.Padding = PaddingMode.PKCS7;

byte [] readFileByte = ReadByte(filePath);

ICryptoTransform transform = aes.CreateEncryptor();

byte [] fielBuffer = transform.TransformFinalBlock(readFileByte, 0, readFileByte.Length); //注意这里返回的是加密后的byte[]

//解密

RijndaelManaged aes = new RijndaelManaged();

byte [] pwdBytes = System.Text.Encoding.UTF8.GetBytes(pwd);

aes.Key = pwdBytes;

aes.IV = Encoding.UTF8.GetBytes(ivpwd);

aes.Mode = CipherMode.CBC;

aes.Padding = PaddingMode.PKCS7;

byte [] readFileByte = ReadByte(filePath);

ICryptoTransform transform = aes.CreateDecryptor();

//注意这里返回的是解密后的byte[]

byte [] fielBuffer = transform.TransformFinalBlock(readFileByte, 0, readFileByte.Length);

加密方式越复杂需要的计算量越大,速度相应会变慢;加密方式需要结合项目来做选择。客户端项目对于数据保密性较强建议使用RSA和 RijndaelManaged 混合加密。

Java面向对象基础之继承

Java面向对象基础之继承

1.包==文件夹
使用步骤:

1.1 自定义包----创建一个包

src—new–package

1.2 包命名

com.开头—com.模板名 比如:com.test

包的导入----不同包中的类互相调用

语法:import <包名>.<类名>
示例:import java.awt.color.*;

2.继承
单继承:一个子类只能有一个直接的父类(object)

语法:

修饰符 class 子类名 extends 父类名

示例:

public class Test extends TestDemo

3.重载和重写

1.重载—写在同一个类

定义:重复定义方法,但是方法的参数列表不同,参数列表包括参数类型不同/参数个数不同

2.重写:至少2个类以上

定义:子类方法写的和父类方法一样,子类拓展父类,在父类基础上额外增加新的属性和方法

以上是关于面向对象基础知识之文件加密解密的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象基础之继承

Java面向对象基础之继承

Java面向对象基础之继承

python基础之面向对象编程

Java基础之面向对象

python基础篇之面向对象