小例子: 压缩文件时的加密与解密(read + openssl + tar + dd)

1.有的文件需要加密一下

2.有的文件夹需要加密一下

分析:

文件或文件夹加密时需考量的几个问题?

文件夹自动补全时后缀有反斜杠处理规则

单个文件加密时命名的规则

>脚本命令的格式规定为./ss {unEncryptFile | unEncryptDir}

>先判断第一个参数是文件还是文件夹

1.文件夹时

> 判断文件夹是否有反斜杠

> 以文件夹的名称做为生成的压缩包名称

2.文件时

> 此处加密时linux中文件后缀去掉

> 当使用压缩和解压缩时后缀就挺有意义的

> 以文件名为压缩包名

示例:

------- 加密 -> 生成.tar.bz2或.tar.gz压缩文件 -------

$ vim tar.encrypt

#!/bin/bash

read -p "Input Compress Cipher Key: " args #提示输入压缩密钥

#The Way I

# tar -zcf - $1 | openssl des3 -salt -k $args | dd of=$1.tar.gz #加密后生成.tar.gz压缩格式

tar -jcf - $1 | openssl des3 -salt -k $args | dd of=$1.tar.bz2 #加密后生成.tar.bz2压缩格式

#The Way II 作用同WayI

# tar -zcf - $1 | openssl des3 -salt -k $args -out $1.tar.gz

# tar -jcf - $1 | openssl des3 -salt -k $args -out $1.tar.bz2

------- 解密 -> 生成文件或文件夹  -------

$ vim tar.decipher

#!/bin/bash

read -p "Input Decompress Cipher Key:  " args #输入解密的密钥

#The Way I 作用同WayII

# dd if=$1 | openssl des3 -d -k $args | tar -zxf -

# dd if=$1 | openssl des3 -d -k $args | tar -jxf -

#The Way II

# openssl des3 -d -k $args -salt -in $1 | tar -zxf - #解压缩.tar.gz格式文件

openssl des3 -d -k $args -salt -in $1 | tar -jxf - #解压缩.tar.bz2格式文件

说明:

以上没有加入参数个数的限制

时间: 2024-11-06 14:54:54

小例子: 压缩文件时的加密与解密(read + openssl + tar + dd)的相关文章

asp.net 文件操作小例子(创建文件夹,读,写,删)

静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一.创建文件夹 using System.IO; string name = "aa"; string path = Server.MapPath("") + "\\" + name; if (Directory.Exists(path)) { Response.Write("<script>alert('文件夹已存在了!');history.go(

7z压缩文件时排除指定的文件

分享一个7z压缩文件时排除指定文件类型的命令行,感觉很有用: 7z a -t7z d:\updateCRM.7z d:\updateCRM\*.* -r -x!*.log -x!*bak a:创建压缩文件 -t7z:7z格式 d:\updateCRM.7z 目标文件名 d:\update7z\*.* 源文件位置 -r:遍历所有子目录 -x!* 要扣除的文件类型

加密与解密、OpenSSL(SSL/TLS)、OpenSSH(ssh)、dropbear

下面介绍的是Linux的加密与解密.OpenSSL(SSL/TLS).OpenSSH(ssh).dropbear. 一.数据的加密与解密 1.进程间通信基础 (1).进程间通信方式 同一主机间进程间的通信方式:signal.shm.semaphore.message queue(MQ.RabbitMQ). 不同主机进程间的通信方式:socket-pair. (2).套接字 -------IP:PORT 套接字Socket:IP:PORT 套接字,是进程的地址标识,一个套接字就是指特定主机上的特定

小例子: 语录文件重命名(mv + rename)

分析: 语录下载时是按时期打包的; 全部解压到一个文件夹时,关于编号问题,操作起来很不方便; 特此给语录重新编号; 无需在意原先时期编号问题; 重新建立惯性思维模式; 统计语录文件总个数用来表示循环中的前缀变量 -> 重命名规则: 保留源文件的信息到文本中 给音频文件添加前缀 命名时名字的顺序不需要固定 每一个音频是一个单独的故事,虽然时期不同到不用让时期保持连贯,打破固有思维,重新建立视听循环. 从001开始到文件的个数总和结束 eg: audio.mp3 -> 001.audio.mp3

使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和解密

在数据库实现加密与解密的文章,Insus.NET较早前也有写过,可以在本博客中可以搜索得到. 今天使用EncryptByPassPhrase和DecryptByPassPhrase来简单实现. 在数据库中创建一张表来演示 CREATE TABLE [dbo].[Users] ( [U_nbr] NVARCHAR(20) NOT NULL PRIMARY KEY, [Pwd] VARBINARY(MAX) ) 当用户使用注册或是添加一笔记录时,你可以使用下面的SQL语句: 当需要验证用户登录信息时

java 实现文件内容的加密和解密

package com.umapp.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.cr

Java 上传和下载文件(附加密和解密)

本文首发于:https://antoniopeng.com 使用 Jersey 服务器实现上传,使用 HTTP 请求实现下载 引入依赖 在 pom.xml 中添加 Jersey 相关依赖 <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.18.1</version> </de

加密、解密以及OpenSSL建立私有CA

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.大多数开源程序,商业软件加密核心都是基于openssl实现的. 数据安全性的基本法则: (1)数据的保密性:信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密.加密的过程需要用到密钥来加密数据然后再解密.没有了密钥,就无法解开加密的数据.数据加密之后,只有密钥要用一个安全的方法传送.加密过的数据可以公开地传送. (2)完整性:

加密、解密以及openssl建立CA

首先先科普一下OpenSSL,我们知道OpenSSL,全名叫Open Secure Sockets Layer,这是一个强大的安全套接字层密码库,主要包括密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的程序供测试或其它目的使用.此外,OpenSSL是基于SSL协议的,SSL要求建立在可靠的传输层协议之上.它优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等协议)能透明地建立于SSL协议之上.SSL协议在应用层协议通信之前就已经完成加密算法