Linux命令行文本加密的小技巧

Linux命令行文本加密的小技巧

我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享。

ROT13文本编码

介绍

ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。

原理

套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后

的对应字母,有需要超过时则重新绕回26英文字母开头即可。A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。只有这些出现在英文。因为移动的位数是可能的 26 个字符的一半,所以对文本再次执行这个算法,就恢复到了它最初的形式。

在命令行使用

tr命令

1. 功能: tr命令,其全称“Text Replacer”,该命令用于进行文本替换。从标准输入中通过替换或删除操作进行字符转换。 tr主要用于删除文件中控制字符或进行字符转换。

2. 选项:

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

-d 删除字符串1中所有输入字符。

-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

实例

  1. 加密:

  2. 解密:

代码实现

具体代码

/*************************************************************************
    > File Name: rot13.c
    > Author: AnSwEr
    > Mail: [email protected]
    > Created Time: 2015年08月18日 星期二 12时02分28秒
 ************************************************************************/

/*
 * realize ROT13 by C
 */

#include<stdio.h>
#include<string.h>

#define MAXSIZE 1024

char *rot13(char * string,unsigned int len)
{
    char *str = string;
    int i;

    for(i = 0;i < len - 1;i++)
    {
        if(str[i] >= ‘a‘&&str[i] <= ‘z‘)
            str[i] = ‘a‘ + (str[i] - ‘a‘ + 13) % 26;
        if(str[i] >= ‘A‘&&str[i] <= ‘Z‘)
            str[i] = ‘A‘ + (str[i] - ‘A‘ + 13) % 26;
    }

    return str;
}

int main(void)
{
    char str_old[MAXSIZE];
    char *str_new;
    unsigned int length;

    printf("Please input your string you want to encrypt by ROT13:\n");
    fgets(str_old,sizeof(str_old),stdin);
    length = strlen(str_old);

    /*encrypt*/
    str_new=rot13(str_old,length);
    printf("After encrypt,string is:\n");
    fputs(str_new,stdout);

    /*decrypt*/
    length = strlen(str_new);
    str_new=rot13(str_new,length);
    if(strcmp(str_new,str_old) == 0)
        printf("Decrypt successfully!\n");
    else
        printf("Decrypt failed!\n");
    printf("After decrypt,string is:\n");
    fputs(str_new,stdout);

    return 0;
}

运行截图

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 15:33:15

Linux命令行文本加密的小技巧的相关文章

Linux以及Android开发中的小技巧和长繁命令记录收集

不断更新收集中.... 2014071743 ssh以nx_guest的身份登录到172.24.221.137,然后在172.24.221.137与172.24.61.252的8080端口建立网络连接,同时创建端口为5678的本地代理服务 ssh -C -f -N -o 'TCPKeepAlive=yes' -L 5678:172.24.61.252:8080 [email protected] 反编译android下的二进制程序 ./prebuilts/gcc/linux-x86/arm/ar

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

软件 ◆ 分享 论坛 投稿 热门标签: 安全 活动 docker 图书 黑客 Nginx 面试 DNS 搜索 搜索 Linux.中国 - 开源社区?技术 ◆ 学习?查看内容 Linux mkdir.tar 和 kill 命令的 4 个有用小技巧 2015-7-22 11:20| 查看: 3005| 评论: 8| 收藏: 8| 分享: 0 原文:http://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/作者: Avishek Kumar

9.Linux命令行文本处理工具

9.Linux命令行文本处理工具 ·基于关键字搜索文本grep ·grep 'test' /etc/passwd搜索关键字, ·find / -user test | grep Video在结果里搜索,find输出的是文本,然后grep关键字, ·选项:-i,忽略大小写, -n,显示结果所在的行数, -v,显示排除关键字的行, -Ax,显示关键字及后面x行,A=after, -Bx,显示关键字及前面面x行,B=before, --color=auto关键字用颜色显示, ·基于列处理文本内容cut

linux入门基础——linux命令行文本处理工具

linux命令行文本处理工具 文件浏览 cat        查看文件内容 more    以翻页形式查看文件内容(只能向下翻页) less    以翻页形式查看文件内容(可上下翻页) head    查看文件的开始10行(或指定行数) tail    查看文件的结束10行(或指定行数) 基于关键字搜索 命令grep用以基于关键字搜索文本 -i        在搜索的时忽略大小写 -n        显示结果所在行数 -v        输出不带关键字的行 -Ax        在输出的时候包含

mac下cp命令的妙用(一个小技巧)

在项目开发中遇到了这样一种情况: 需要用一个干净的工程(export出来的,没有svn信息)去覆盖一个主干的工程(含有svn信息),然后提交代码:我们在mac系统中拷贝->粘贴到目标文件夹,只有2个选项:停止和全部替换:选择全部替换后,svn信息全部丢失了. 这时我们可以使用cp -r dir1 rootdir 来进行覆盖,dir1是那个干净工程的文件夹路径,和主干工程同名:rootdir是主干工程的上级目录,如此一来我们就实现了保留svn信息前提下覆盖文件夹的目的. mac下cp命令的妙用(一

【老鸟分享】LINUX命令行终端提示符多种实用技巧!

1.Linux命令行提示符简介 众所周知,Linux命令行是系统管理员管理Linux的重要手段,我们管理Linux,首先要面对的就是Linux命令行提示符. Linux命令行结尾的提示符有"#"和"$"两种不同的符号,如下所示: [[email protected] ~]# #<==这是超级管理员root用户对应的命令行. [[email protected] ~]$ #<==这是普通用户oldboy对应的命令行. 其中: 1)#号,是使用超级用户roo

LINUX命令行终端提示符多种实用技巧!

1.Linux命令行提示符简介 老男孩教育原创 众所周知,Linux命令行是系统管理员管理Linux的重要手段,我们管理Linux,首先要面对的就是Linux命令行提示符. Linux命令行结尾的提示符有"#"和"$"两种不同的符号,如下所示: [[email protected] ~]# #<==这是超级管理员root用户对应的命令行. [[email protected] ~]$ #<==这是普通用户oldboy对应的命令行. 其中: 1)#号,是使

菜鸟的进击之路(二)------初识linux的一些基本知识与小技巧

一.linux的优点 稳定性强,开源免费(除Rhat). 安全性高,多用户,多进程. 耗费资源低. 二.一般普通的分区大小标准 /boot  200M /swap  相当于虚拟内存 /    总内存的30% /data  剩余的所有分区 三.linux根目录下各个文件夹的含义和用途 /bin        存放linux的常用的基本命令 /dev       存放设备文件的目录,主要是外部设备,例如鼠标,键盘 /home    宿主的家目录 /lost+found      断电时丢失文件找回目

Linux系统目录详解及实用小技巧

下面以Centos 7为例: 启动级别修改 systemctl isolate multi-user.target systemctl isolate runlevel3.target 启动文件在/etc/systemd/system/default.target 想要修改就直接更改文件就行了: ln -sf /lib/systemd/system/[multi-user.target | graphical.target]\ /etc/systemd/system/default.target