asp.net 传入后台的值加密

maoxiaoling9598 2014-08-21 03:49:45
我的标题可能有不太对啊,我先说说我遇到的问题吧。

我有一个支付页面,用户直接输入银行卡卡号等信息进行付款。

在提交的时候通过浏览器的调试器里的网络可以看到formdata对象有暴露信用卡号这些信息。

我想要在用户提交之前做加密,防止这些敏感信息被劫持。不知道该怎么去做,求指教。

...全文
193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kemin312 2014-08-22
  • 打赏
  • 举报
回复
可不可以不要这么叼
  • 打赏
  • 举报
回复


   /// <summary>
        /// 加密解密钥匙
        /// </summary>
        private static string Key = "123232......";

        /// <summary>
        /// 加密函数
        /// </summary>
        /// <param name="data">加密数据</param>
        /// <returns>返回加密后数据</returns>
        public static string DesEncrypt(string data)
        {
            string result = string.Empty;
            try
            {
                if (string.IsNullOrEmpty(data) == false)
                {
                    //访问数据加密标准(DES)算法的加密服务提供程序 (CSP) 版本的包装对象
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);//建立加密对象的密钥和偏移量
                    des.IV = ASCIIEncoding.ASCII.GetBytes(Key); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法
                    byte[] inputbyteArray = Encoding.Default.GetBytes(data);//把字符串放到byte数组中
                    MemoryStream ms = new MemoryStream();//创建其支持存储区为内存的流 

                    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
                    cs.Write(inputbyteArray, 0, inputbyteArray.Length);
                    cs.FlushFinalBlock();

                    StringBuilder ret = new StringBuilder();
                    foreach (byte b in ms.ToArray())
                    {
                        ret.AppendFormat("{0:X2}", b);
                    }
                    result = ret.ToString();
                }
            }
            catch (Exception e)
            {
             
                result = "";
            }
            return result;
        }
        /// <summary>
        /// 解密E函数
        /// </summary>
        /// <param name="data">被解密的字符串</param>
        /// <returns>返回被解密的字符串</returns>
        public static string DesDecrypt(string data)
        {
            string result = string.Empty;
            try
            {
                if (string.IsNullOrEmpty(data) == false)
                {
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    byte[] inputbyteArray = new byte[data.Length / 2];
                    for (int i = 0; i < data.Length / 2; i++)
                    {
                        int x = Convert.ToInt32(data.Substring(i * 2, 2), 16);
                        inputbyteArray[i] = (byte)x;
                    }
                    des.Key = ASCIIEncoding.ASCII.GetBytes(Key);
                    des.IV = ASCIIEncoding.ASCII.GetBytes(Key);
                    MemoryStream ms = new MemoryStream();
                    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
                    cs.Write(inputbyteArray, 0, inputbyteArray.Length);
                    cs.FlushFinalBlock();
                    result = System.Text.Encoding.Default.GetString(ms.ToArray());
                }
            }
            catch (Exception e)
            {
             
                result = "";
            }
            return result;
        }

dengchenlu 2014-08-22
  • 打赏
  • 举报
回复
这种输入页面可以用证书方式,https访问
祥子爱游戏 2014-08-21
  • 打赏
  • 举报
回复
要想加密就去网上找一个加密算法就好了。
祥子爱游戏 2014-08-21
  • 打赏
  • 举报
回复
加密哪有这么简单,看别人都是用控件做的
liuruitao647 2014-08-21
  • 打赏
  • 举报
回复
传递前加密。接收后解密再处理。
淡淡的活着 2014-08-21
  • 打赏
  • 举报
回复
用JS加密补就好了··自己制定个加密规则
bdmh 2014-08-21
  • 打赏
  • 举报
回复
你都知道要加密,那就提交前加密就是了,一堆乱码也猜不出来, 接受者解码就是了

62,041

社区成员

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

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

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

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