导航:首页 > 文档加密 > 字符串全是英文是否加密

字符串全是英文是否加密

发布时间:2022-12-11 23:55:06

① C语言实现将字符串进行加密处理,每个字符的加密规则是,将其转换为对应的ASCII码加3后对应 的字符输出

输入的是英文字符的话,直接加3就可以,但是如果是中文字符的话,如果直接高位和地位加3也可以,但是解密的时候就有一个不确定的存在,因为中文字符的ascii编码是有0xfe这样的存在,加上3的话就到时候还原就变得不确定。所以如果是中文字符加密的话,应该把两个ascii码转合并为两个字节无符号类型,然后再加3。

② c#中,如何将含有字母和数字的字符串加密成一个全是字母的字符串,并解密

publicclassStringEncrypt
{
///<summary>
///使用缺省密钥字符串加密
///</summary>
///<paramname="original">明文</param>
///<returns>密文</returns>
publicstaticstringEncrypt(stringoriginal)
{
returnEncrypt(original,"xyzABc*$!");
}
///<summary>
///使用缺省密钥解密
///</summary>
///<paramname="original">密文</param>
///<returns>明文</returns>
publicstaticstringDecrypt(stringoriginal)
{
returnDecrypt(original,"xyzABc*$!",System.Text.Encoding.Default);
}
///<summary>
///使用给定密钥解密
///</summary>
///<paramname="original">密文</param>
///<paramname="key">密钥</param>
///<returns>明文</returns>
publicstaticstringDecrypt(stringoriginal,stringkey)
{
returnDecrypt(original,key,System.Text.Encoding.Default);
}
///<summary>
///使用缺省密钥解密,返回指定编码方式明文
///</summary>
///<paramname="original">密文</param>
///<paramname="encoding">编码方式</param>
///<returns>明文</returns>
publicstaticstringDecrypt(stringoriginal,Encodingencoding)
{
returnDecrypt(original,"xyzABc*$!",encoding);
}
///<summary>
///使用给定密钥加密
///</summary>
///<paramname="original">原始文字</param>
///<paramname="key">密钥</param>
///<paramname="encoding">字符编码方案</param>
///<returns>密文</returns>
publicstaticstringEncrypt(stringoriginal,stringkey)
{
byte[]buff=System.Text.Encoding.Default.GetBytes(original);
byte[]kb=System.Text.Encoding.Default.GetBytes(key);
returnConvert.ToBase64String(Encrypt(buff,kb));
}

///<summary>
///使用给定密钥解密
///</summary>
///<paramname="encrypted">密文</param>
///<paramname="key">密钥</param>
///<paramname="encoding">字符编码方案</param>
///<returns>明文</returns>
publicstaticstringDecrypt(stringencrypted,stringkey,Encodingencoding)
{
byte[]buff=Convert.FromBase64String(encrypted);
byte[]kb=System.Text.Encoding.Default.GetBytes(key);
returnencoding.GetString(Decrypt(buff,kb));
}
///<summary>
///生成MD5摘要
///</summary>
///<paramname="original">数据源</param>
///<returns>摘要</returns>
publicstaticbyte[]MakeMD5(byte[]original)
{
=newMD5CryptoServiceProvider();
byte[]keyhash=hashmd5.ComputeHash(original);
hashmd5=null;
returnkeyhash;
}

///<summary>
///使用给定密钥加密
///</summary>
///<paramname="original">明文</param>
///<paramname="key">密钥</param>
///<returns>密文</returns>
publicstaticbyte[]Encrypt(byte[]original,byte[]key)
{
=();
des.Key=MakeMD5(key);
des.Mode=CipherMode.ECB;

returndes.CreateEncryptor().TransformFinalBlock(original,0,original.Length);
}

///<summary>
///使用给定密钥解密数据
///</summary>
///<paramname="encrypted">密文</param>
///<paramname="key">密钥</param>
///<returns>明文</returns>
publicstaticbyte[]Decrypt(byte[]encrypted,byte[]key)
{
=();
des.Key=MakeMD5(key);
des.Mode=CipherMode.ECB;

returndes.CreateDecryptor().TransformFinalBlock(encrypted,0,encrypted.Length);
}

///<summary>
///使用给定密钥加密
///</summary>
///<paramname="original">原始数据</param>
///<paramname="key">密钥</param>
///<returns>密文</returns>
publicstaticbyte[]Encrypt(byte[]original)
{
byte[]key=System.Text.Encoding.Default.GetBytes("xyzABc*$!");
returnEncrypt(original,key);
}

///<summary>
///使用缺省密钥解密数据
///</summary>
///<paramname="encrypted">密文</param>
///<paramname="key">密钥</param>
///<returns>明文</returns>
publicstaticbyte[]Decrypt(byte[]encrypted)
{
byte[]key=System.Text.Encoding.Default.GetBytes("xyzABc*$!");
returnDecrypt(encrypted,key);
}
}

③ 12:字符串加密、解密

编码: 将计算机中的字符串按照一定的顺序表示成二进制数据的过程

各国字符编码都不一样:
1、计算机-> 表示[英文字母、数字、部分特殊符号]-> ascii编码 [0~256]
2、万国码,统一字符编码[号称可以统一全球范围内任何语言的表示方式]
任何语言中的任何数据,都可以使用一个字符来表示 unicode编码
3、中国有GB2312-> GBK -> GB18030
4、数据传输编码:unicode transfer format 8 bit [UTF-8]
python中的编码解码:
要命的规则:字符串的编码解码,一直都是任何语言中一个难点和重点
任何字符串->都是由字节组成的!

python3中:字符:(str);字节(bytes)
字符->字节:encode 编码:将一个字符串编码成计算机可以操作的二进制数据
字节->字符:decode 解码:将一个二进制数据按照指定的编码~解码成自然数据

什么是加密: 将一个明文数据,按照指定的算法,运算得到一个其他的可以隐藏真实信息的密文数据,这个过程称为加密;处理的算法称为加密算法;用到的关键数据称为密钥
什么是解密: 按照指定的算法和关键数据,将一个密文数据进行逆向运算得到正确的明文数据的过程成为解密操作

(1)、单向加密算法:只能加密,不能解密的算法
如:用户账号密码(单向加密)存储,此时任何人都不能查看该用户的明文密码
流程->用户输入明文密码->加密->和存储的密文密码进行比较->相等-成功
单向散列加密算法-> MD5加密
单项哈希加密算法-> SHAX加密

(2)、双向加密算法:可以加密,加密的数据可以解密得到明文数据
使用在更多的场景;数据进行加密传输->目标地址->解密得到明文数据进行处理
对称加密:加密和解密使用相同的秘钥;
非对称加密:加密和解密使用不同的秘钥;如HTTPS传输数据

hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法

注意: hashlib 加密啊的字符串类型为二进制编码,直接加密字符串会报如下错误:

有两种方式可以将字符串转化为二进制数据

④ C语言 字符串加密

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(void)
{
charc[100];
intk;
intlen,i,temp;

scanf("%s",c);
scanf("%d",&k);

len=(int)strlen(c);
k=k%26;

for(i=0;i<len;i++)
{
if(c[i]>='a'&&c[i]<='z')
{
if(c[i]+k>'z')
{
temp='z'-c[i];
temp=k-temp-1;
c[i]='a'+temp;
}
else
{
c[i]+=k;
}
}
elseif(c[i]>='A'&&c[i]<='Z')
{
if(c[i]+k>'Z')
{
temp='Z'-c[i];
temp=k-temp-1;
c[i]='A'+temp;
}
else
{
c[i]+=k;
}
}
else
{
/*donothing*/
}
}

printf("%s ",c);

return0;
}

⑤ 字符串加密

#include <stdio.h>
#include <stdlib.h>
void replace(char *src, int n)
{
char *s = src;
n = n % 26;
while(*s != 0)
{
*s = *s + n;
if(*s > 'Z') *s -= 26;
s++;
}
}
void disorder(char *s, char *key)
{
int len = 0 , i = 0;
char *tmp;
while(s[len++] != 0);
tmp = (char*)malloc(sizeof(char) * (len));
while(i < len) tmp[i] = s[i++];
for(i = 0; i < len - 1; i++)
{
s[i] = tmp[key[i] - '0' - 1];
}
free(tmp);
}
void main()
{
int n;
char str[100], key[100];
printf("input <str n order >: ");
//请合法输入eg. AXZ 2 231
scanf("%s%d%s", str, &n, key);
replace(str, n);
printf("str = %s\n", str);
disorder(str, key);
printf("str = %s\n", str);
}

阅读全文

与字符串全是英文是否加密相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163