Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >27-字符串加密和解密算法

27-字符串加密和解密算法

作者头像
lexingsen
发布于 2022-02-25 01:04:22
发布于 2022-02-25 01:04:22
1.4K00
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行
思路

根据题意,思路是比较好想的,但是要注意以下两点

  • 加密时,要注意偏移之后的值(下标 + 5)不能超能ascii码所能表示的范围。
  • 解秘时,要注意偏移之后的值(下标 - 5)不能小于0,所以需要加上N然后取模。
代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <string.h>

/*
 * 在本实例中要求设计一个加密和解密算法。
 * 在对一个指定的字符串加密之后,利用解密函数能够对密文解密,显示明文信息。
 * 加密的方式是将字符串中每个字符加上它在字符串中的位置和一个偏移值 5。
 * 以字符串“mrsoft”为例,第一个字符“m”在字符串中的位置为0,那么它对应的密文是“'m'+0+5",即 r。
 * */
#define N 128
char* encode(char* s) {
    int n = strlen(s);
    for (int i = 0; i < n; i++) {
        s[i] = s[i] + (i + 5) % N;
    }
    return s;
}

char* decode(char* s) {
    int n = strlen(s);
    for (int i = 0; i < n; i++) {
        s[i] = s[i] - (i + 5 + N) % N;
    }
    return s;
}

int main() {
    char s[N] = {0};
    puts("please input the string:\n");
    gets(s);
    char* t = encode(s);
    printf("encode s is %s\n", t);
    char* ans = decode(s);
    printf("decode s is %s\n", ans);
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言实现字符串的加密和解密
在项目开发中,为了防止一些敏感信息的泄露,通常我们会对这些信息进行加密,比如用户的登录密码,如果不加密直接进行明文存储的话,就很容易被人看到,但密码对用户来说是保密的,因此我们需要对数据进行加密后再存储,这样一来,即使被看到也是我们加密后的数据,从而大大提高了安全性。
C语言中文社区
2022/05/30
1.8K0
C语言实现字符串的加密和解密
6-4 字符串加密(Java解法,两种网上的类型题)
        本题要求实现一个函数,能对一行字符串(字符串的长度<80)加密。 加密函数采用的加密算法:如果不是英文字母,就不加密,原样显示;否则就将字母加上一个偏移值5实现加密。
红目香薰
2023/02/10
3210
6-4 字符串加密(Java解法,两种网上的类型题)
字符串逆序 - 多种方法实现
对字符串进行逆序,以字符串abcdef为例 1. 借助额外数组 #include <stdio.h> #include <string.h> int main() { char str[] = "abcdef"; //求字符串的大小,包括'\0'在内 int sz = strlen(str) + 1; //动态内存分配,申请一个大小为sz的字符数组 char* p = (char*)malloc(sizeof(char) * sz); int i = 0;
怠惰的未禾
2023/04/27
3690
字符串逆序 - 多种方法实现
6种php加密解密方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166656.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
1.7K0
PHP字符串增强加密
为了增加数据的安全性 避免相同字符多次加密得到结果是一致的 可以设置密文有效期 加密方式:Mcrypt::encode(Str, n); 解密方式: Mcrypt::decode(Str, n); require("Mcrypt.class.php") ; $code = Mcrypt::encode('sajkfcasjcla','7580'); echo "code-".$code; $code_ans = Mcrypt::decode("$code",'758
红目香薰
2022/11/29
1.4K0
[c语言日寄]字符串的左旋与右旋
在C语言中,字符串操作是一个非常重要的主题,它不仅涉及到基础的字符处理,还涉及到算法设计和数据结构的运用。今天,我们通过一个有趣的题目——判断一个字符串是否为另一个字符串旋转后的字符串,来深入探讨字符串的左旋与右旋操作。这个问题不仅能帮助我们理解字符串的基本操作,还能锻炼我们的算法思维。接下来,我们将从题目引入、子功能介绍、注意事项、题目分析解答以及拓展应用五个方面展开讨论。
siy2333
2025/02/17
420
[c语言日寄]字符串的左旋与右旋
浅谈android端的字符串加密
字符串加密是一个非常传统的代码保护方案,在android的逆向过程中会涉及到java代码和C\C++代码,通常在对APP做逆向过程中第一步一般就是反编译后查看代码中是否有包含一些可以作为突破口分析的字符串信息。
小道安全
2022/12/18
2.1K0
浅谈android端的字符串加密
C语言从青铜到王者——函数详解【多个实例】
对于一个C程序而言,它所有的命令都包含在函数内。每个函数都会执行特定的任务。有一个特别的函数,名称为main()——该函数是程序启动后,第一个执行的函数。其他所有函数都是main()函数的子函数(或者与之相关联的过程,例如回调函数),并且它们的函数名称可以自己设定。每个函数都只能被定义一次。但一个函数可以根据需要被多次的声明和调用。
C语言中文社区
2022/05/31
6710
C语言从青铜到王者——函数详解【多个实例】
php中常用的Rc4/Des/AuthCode可逆加密函数
首先是AuthCode可逆加密函数,在dz论坛等各大程序的数据传输和登陆验证都有用到。
V站CEO-西顾
2018/06/10
1.4K0
C语言:字符串详解
当输入是abc124a时输入输出如下表示: input a string:abc124a abc124a
obaby
2023/02/28
2.6K0
【C语言】程序设计加密&解密
在设计程序的时候为了防止一些敏感信息倍泄漏的时候,通常需要对这些信息进行加密的时候,以用户的的登录密码为例,如果密码以明文(密码)的形式存储在数据表当中,就会很容易被人发现。相反,如果密码以密文的形式进行存储的话,即使别人从数据表当中发现了密码,这也是加密之后的密码。
謓泽
2023/12/08
3010
【C语言】程序设计加密&解密
免杀卡巴斯基及字符串加密
首先是ApiHammering技术,函数在下面,这是规避技术中的一种,目的是制造一些大量无用的看似正常的API操作,这里使用的是读写文件操作。
白帽子安全笔记
2024/10/28
1280
免杀卡巴斯基及字符串加密
华为机试题 HJ36 字符串加密
华为机试题 HJ36 字符串加密 题目描述: 描述 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理: 首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个, 将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。如下所示: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z T R A I L B Z E
ccf19881030
2023/02/26
6590
利用异或运算实现字符串加密C语言实现
一个数异或另一个数两次后,该数保持不变。即: c = a^b; c = c^b; c == a;
里克贝斯
2021/05/21
3.1K0
利用异或运算实现字符串加密C语言实现
介绍三种PHP加密解密算法
这里主要介绍三种常用的加密解密算法: 方法一: /** * @param $string 要加密/解密的字符串 * @param string $operation 类型,ENCODE 加密;DECODE 解密 * @param string $key 密匙 * @param int $expiry 有效期 * @return string */ function authcode($string, $operation = 'DECODE', $key = 'encryp
用户8099761
2023/05/11
5700
20.3 OpenSSL 对称AES加解密算法
AES算法是一种对称加密算法,全称为高级加密标准(Advanced Encryption Standard)。它是一种分组密码,以128比特为一个分组进行加密,其密钥长度可以是128比特、192比特或256比特,因此可以提供不同等级的安全性。该算法采用了替代、置换和混淆等技术,以及多轮加密和密钥扩展等机制,使得其加密效果优秀,安全性高,被广泛应用于各种领域中,如数据加密、文件加密、网络安全等。
王瑞MVP
2023/10/30
1.3K0
20.3 OpenSSL 对称AES加解密算法
康盛(discuz )牛逼的PHP加解密算法函数
  康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间。
那一叶随风
2018/08/22
1.6K0
[C语言日寄] 字符串操作函数的使用及其拓展
在C语言中,字符串是程序设计中不可或缺的一部分。C语言本身并没有提供专门的字符串类型,而是通过字符数组来实现字符串操作。为了方便对字符串进行处理,C语言标准库提供了丰富的字符串操作函数。今天,我们就通过一个简单的程序来深入探讨字符串操作函数的使用,以及它们在C语言中的重要性。
siy2333
2025/03/07
1030
AES加密算法的详细介绍与实现
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:
全栈程序员站长
2022/09/13
7.6K0
记录下几种php加密算法
偶然间在别人博客发现的,感觉挺实用就给搬了过来 <?php /** * rc4,解密方法直接再一次加密就是解密 * @param [type] $data 要加密的数据 * @param
用户8099761
2023/05/11
3360
记录下几种php加密算法
相关推荐
C语言实现字符串的加密和解密
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验