简单的加密算法

本文介绍了一种简单的IPv4字符串加密方法,通过一个11行15列的字符映射表实现加密与解密过程,并提供了C语言实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:
这几天在我们 vc驿站- www.cctry.com  上面看到一位网友发了一篇关于加密IPv4字符串的提问帖子,被我看到了。
帖子地址: http://www.cctry.com/thread-238356-1-1.html

简单与楼主沟通了之后,了解了加密的原理,感觉还不错,简单实用。于是就用C语言实现了这个加密的算法,有加密就得有解密,于是顺便也把解密的算法给写出来了,这里面跟大家分享下。将这个 IP 地址加密之后可以应用与很多方面,比如大家都感兴趣的远控编程,将主控端的IP地址进行加密等等,大家也来学习下吧!

算法原理:
该算法有个加密与解密的表格,如下:

     0   1   2   3   4   5   6   7   8   9   10   11   12   13   14
0   s    t   u   v   w   x   y    z   a    b    c     d     e     f      g
1   t    u   v  w   x    y   z    a   b    c    d     e     f     g      h
2   u   v   w  x    y   z    a   b   c    d    e     f     g      h     i
3   v   w   x   y    z   a   b   c    d   e    f      g    h      i      j
4  w    x   y   z    a   b   c   d    e    f    g     h     i      j      k
5  m   n   o   p   q   r    s   t    u    v   w     x     y     z     a
6  n    o   p   q   r    s    t   u    v   w   x      y    z     a     b
7  o    p   q   r    s   t    u   v    w   x    y     z     a    b     c
8  p   q    r    s    t   u   v   w    x    y   z     a     b    c     d
9  q    r    s    t    u   v  w   x     y   z   a     b     c    d     e
.    r    s   t     u   v   w   x   y    z    a   b    c     d     e     f

整理成表格如下:
s t u v w x y z a b c d e f g
t u v w x y z a b c d e f g h
u v w x y z a b c d e f g h i
v w x y z a b c d e f g h i j
w x y z a b c d e f g h i j k
m n o p q r s t u v w x y z a
n o p q r s t u v w x y z a b
o p q r s t u v w x y z a b c
p q r s t u v w x y z a b c d
q r s t u v w x y z a b c d e
r s t u v w x y z a b c d e f


////////////////////////////////////////////////////////////////////////////////
// 备注:本篇文章来自 vc驿站: http://www.cctry.com
// C、C++、VC++ 各种学习资源,免费教程,期待您的加入!
/////////////////////////////////////////////////////////////////////////////////

大家可以看看,也就是说该表格是个二维的数组,总共有11行、15列。为什么有11行呢,因为在IPv4中,所有能出现的字符也就是0123456789这么十格数字,再加上一个“.”符号,所以就是11行了,那么为什么又是15列呢?因为在IPv4中最长的IP字符串就是15位,例如:192.168.105.123,算上“.”符号也就是15位的长度,所以总共是15列。好了,关于这个表格就讲解到这里吧,下面说说如何用这个表格去加密IPv4的字符串。

这里举个例子,比如要加密的IPv4的地址为:192.168.105.123,我们一位一位的来取字符。  IP地址中每个字符的字面值代表行,他在IP地址字符串中的位置代表列 。按照这个理论去加密IP地址的字符串就可以了。

比如IP地址中第一个字符为'1',他的字面值就是1,所以我们定位到表格的第一行也就是这行:1 t u v w x y z a b c d  e  f  g  h,他在IP地址字符串中的位置是0(字符串的位置从0开始),所以我们直接取出表格第一行的第0列,即:字符't',所以'1'加密后的结果就是't'。

接着来,IP地址中第二个字符为'9',他的字面值就是9,所以我们定位到表格的第九行也就是这行:9 q r s t u v w x y z a  b  c  d  e,他在IP地址字符串中的位置是1(字符串的位置从0开始),所以我们直接取出表格第九行的第1列,即:字符'r',所以'9'加密后的结果就是'r'。

再来,IP地址中第三个字符为'2',他的字面值就是2,所以我们定位到表格的第二行也就是这行:2 u v w x y z a b c d e  f  g  h  i,他在IP地址字符串中的位置是2(字符串的位置从0开始),所以我们直接取出表格第二行的第2列,即:字符'w',所以'2'加密后的结果就是'w'。

再来,IP地址中第四个字符为'.',他的字面值就是'.',所以我们定位到表格的最后一行也就是这行:. r s t u v w x y z a b  c  d  e  f,他在IP地址字符串中的位置是3(字符串的位置从0开始),所以我们直接取出表格最后一行的第3列,即:字符'u',所以'.'加密后的结果就是'u'。

以此类推,大家应该明白了吧,加密原理明白了,接下来的工作就是用C语言的代码实现出来了,应该不难吧。同理加密原理明白了,那么再写个解密的算法也不成问题,反过来就OK了。

好了,废话不多说了,直接奉上C语言版的加密算法,时间比较仓促,写的不好还请大家拍砖。

////////////////////////////////////////////////////////////////////////////////
// 备注:本篇文章来自 vc驿站: http://www.cctry.com
// C、C++、VC++ 各种学习资源,免费教程,期待您的加入!
/////////////////////////////////////////////////////////////////////////////////

代码如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值