关于字符串加密排序的问题

踏雪听雨 2014-08-15 11:27:37
字符串加密后保存到数据库,然后又正常order by,并且在页面上显示还是正常排序。

例如:
abc 加密成 ĚÞâãæãÝæäÞÞßíÞãàÛĐĜĚ
abd 加密成 ĚÞâãæãÝæäÞÞßíÞãàÛĐâã

通过sql排序后 from table order by email
在页面端显示为:
abc
acd

即排序是正常的.

这是不是跟加密算法有关?

我现在的加密算法是:
string str = "";
for (int i = 0; i < target.ToCharArray().Length; i++)
{
char c = target.ToCharArray()[i];
int keyLen =5;
str = str + ((char)(c + 5));
}
return str;
...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-08-16
  • 打赏
  • 举报
回复
如果加密后的数据能排序的话,那么这种加密就形同虚设了。
kangda_2467974115 2014-08-16
  • 打赏
  • 举报
回复
对字符串加密问题 //对字符串加密 private void btn_Encrypt_Click(object sender, EventArgs e) { if (txt_password.Text.Length == 4)//判断加密密钥长度是否正确 { try { txt_EncryptStr.Text = //调用实例ToEncrypt方法得到加密后的字符串 new Encrypt().ToEncrypt( txt_password.Text, txt_str.Text); //Encrypt P_Encrypt = new Encrypt(); //P_Encrypt.ToEncrypt("" } catch (Exception ex)//捕获异常 { MessageBox.Show(ex.Message);//输出异常信息 } } else { MessageBox.Show("密钥长度不符!", "提示");//提示用户输入密钥长度不正确 } } //对字符串解密 private void btn_UnEncrypt_Click(object sender, EventArgs e) { if (txt_password2.Text.Length == 4)//判断加密密钥长度是否正确 { try { txt_str2.Text = //调用ToDecrypt方法得到解密后的字符串 new Encrypt().ToDecrypt( txt_password2.Text, txt_EncryptStr2.Text); } catch (Exception ex)//捕获异常 { MessageBox.Show(ex.Message);//输出异常信息 } } else { MessageBox.Show("密钥长度不符!", "提示");//提示用户输入密钥长度不正确 } }
於黾 2014-08-15
  • 打赏
  • 举报
回复
str = str + ((char)(c + 5)); 字符串排序,其实就是按字符串的char值来排序 你的算法不管是让字符串变长了还是没变,char值全部都+5的话,相对差值没变,所以排序也不变
geyewei 2014-08-15
  • 打赏
  • 举报
回复
一个做法是不用SQL排序,而是将需要显示的数据取出来,解密成正常字符串以后,在你的程序中排序。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧