天天看点

字符串加解密

题目描述

1、对输入的字符串进行加解密,并输出。

2加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程

<code>#ifndef _ENCRYPTUNENCRYPT_</code>

<code>#define _ENCRYPTUNENCRYPT_</code>

<code>/*================================ Macros ===================================*/</code>

<code>#define FALSE 0</code>

<code>#define TURE 1</code>

<code>/*============================= Include Function ===============================*/</code>

<code>int</code> <code>Encrypt (</code><code>char</code> <code>aucPassword[], </code><code>char</code> <code>aucResult[]);</code>

<code>int</code> <code>unEncrypt (</code><code>char</code> <code>result[], </code><code>char</code> <code>password[]);</code>

<code>#endif //_ENCRYPTUNENCRYPT_</code>

<code>/*============================= Include Files ===============================*/</code>

<code>#include"encryptUnencrypt.h"</code>

<code>#include&lt;string.h&gt;</code>

<code>/*****************************************************************************/</code>

<code>/*函数名:oneCharEncrypt*/</code>

<code>/*函数入口参数:要加密的数组*/</code>

<code>/*函数返回值:标识函数是否成功完成*/</code>

<code>/*函数功能:实现对一个字符串的加密*/</code>

<code>static</code> <code>char</code> <code>oneCharEncrypt(</code><code>char</code> <code>ch)</code>

<code>{</code>

<code>    </code><code>if</code><code>((ch &gt;= </code><code>'a'</code><code>) &amp;&amp; (ch &lt;=</code><code>'z'</code><code>))</code>

<code>    </code><code>{</code>

<code>        </code><code>ch -= 32;</code>

<code>        </code><code>if</code><code>(</code><code>'Z'</code> <code>== ch)</code>

<code>        </code><code>{</code>

<code>            </code><code>ch = </code><code>'a'</code><code>;</code>

<code>        </code><code>}</code>

<code>        </code><code>else</code>

<code>            </code><code>ch += 1;</code>

<code>    </code><code>}</code>

<code>    </code><code>else</code> <code>if</code><code>((ch &gt;= </code><code>'A'</code><code>) &amp;&amp; (ch &lt;= </code><code>'Z'</code><code>))</code>

<code>        </code><code>ch += 32;</code>

<code>        </code><code>if</code><code>(</code><code>'z'</code> <code>== ch)</code>

<code>    </code><code>else</code> <code>if</code><code>((ch &gt;= </code><code>'0'</code><code>) &amp;&amp; (ch &lt;= </code><code>'9'</code><code>))</code>

<code>        </code><code>if</code><code>(</code><code>'9'</code> <code>== ch)</code>

<code>            </code><code>ch = </code><code>'0'</code><code>;</code>

<code>        </code> 

<code>    </code><code>else</code>

<code>        </code><code>return</code> <code>ch;</code>

<code>    </code><code>return</code> <code>ch;</code>

<code>}</code>

<code>/*函数名:Encrypt*/</code>

<code>/*函数入口参数:加密和未加密两个数组*/</code>

<code>/*函数功能:实现对字符串的加密*/</code>

<code>int</code> <code>Encrypt(</code><code>char</code> <code>aucPassword[], </code><code>char</code> <code>aucResult[])</code>

<code>    </code><code>int</code> <code>index = 0;</code>

<code>    </code><code>//求取要加密数组长度</code>

<code>    </code><code>int</code> <code>sizeArr = </code><code>strlen</code><code>(aucPassword);</code>

<code>    </code><code>//依次加密</code>

<code>    </code><code>for</code><code>(;index &lt; sizeArr;index++)</code>

<code>        </code><code>aucResult[index] = oneCharEncrypt(aucPassword[index]);  </code>

<code>    </code><code>return</code> <code>TURE;</code>

<code>/*函数名:oneCharUnencrypt*/</code>

<code>/*函数入口参数:要解密的数组*/</code>

<code>/*函数功能:实现对一个字符串的解密*/</code>

<code>static</code> <code>char</code> <code>oneCharUnencrypt(</code><code>char</code> <code>ch)</code>

<code>        </code><code>ch -= 33;</code>

<code>        </code><code>ch += 31;</code>

<code>        </code><code>if</code><code>(</code><code>'0'</code> <code>== ch)</code>

<code>            </code><code>ch = </code><code>'9'</code><code>;</code>

<code>            </code><code>ch -= 1;</code>

<code>        </code><code>}  </code>

<code>/*函数名:unEncrypt*/</code>

<code>/*函数功能:实现对字符串的解密*/</code>

<code>int</code> <code>unEncrypt(</code><code>char</code> <code>result[], </code><code>char</code> <code>password[])</code>

<code>    </code><code>//解密字符串的长度</code>

<code>    </code><code>int</code> <code>sizeArr = </code><code>strlen</code><code>(password);</code>

<code>    </code><code>//依次解密</code>

<code>        </code><code>result[index] = oneCharUnencrypt(password[index]);</code>

本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1751676,如需转载请自行联系原作者

继续阅读