捕获实时图像并以加密形式存储在数据库中并在 C# 中的页面加载时解密

问题描述

我正在使用 JavaScript 捕获实时图像并将该图像以加密形式存储在数据库中。下面是在数据库中存储图像的代码

Session["imageName"] = DateTime.Now.ToString("dd-MM-yy hh-mm-ss"); 
Session["imagePath"] = string.Format("{0}.png",Session["imageName"].ToString());
Session["CapturedImage"] = ResolveUrl(Session["imagePath"].ToString());

private static byte[] ConvertHexToBytes(string hex)
{
    byte[] bytes = new byte[hex.Length * sizeof(char)];
    System.Buffer.Blockcopy(hex.tochararray(),bytes,bytes.Length);
    return bytes;
}

public static bool SaveCapturedImage(string data)
{
    string url = HttpContext.Current.Session["CapturedImage"].ToString();
    HttpContext.Current.Session["CapturedImage"] = null;
    return true;
}

protected void btnUpload_Click1 (object sender,EventArgs e)
{
    using (StreamReader reader = new StreamReader(Request.InputStream))
    {
        Session["hexString"] = Server.UrlEncode(reader.ReadToEnd());

        string filename = Session["imageName"].ToString();
        string contentType = Session["imagePath"].ToString();
        using (FileStream fs = new FileStream(filename,FileMode.OpenorCreate,FileAccess.Write))
        {
            byte[] bytes = ConvertHexToBytes(Session["hexString"].ToString());
            string constr = ConfigurationManager.ConnectionStrings["Con2"].ConnectionString;
            using (sqlConnection con = new sqlConnection(constr))
            {
                string query = "insert into tblFiles values (@UId,@Name,@RelativeName,@ImageName,@ContentType,@Data,@uname)";
                using (sqlCommand cmd = new sqlCommand(query))
                {
                    cmd.Connection = con;
                    cmd.Parameters.AddWithValue("@UId",txtId.Text);
                    cmd.Parameters.AddWithValue("@Name",txtName.Text);
                    cmd.Parameters.AddWithValue("@RelativeName",txtRName.Text);
                    cmd.Parameters.AddWithValue("@ImageName",filename);
                    cmd.Parameters.AddWithValue("@ContentType",contentType);
                    cmd.Parameters.AddWithValue("@Data",bytes);
                    cmd.Parameters.AddWithValue("@uname",Session["uname"].ToString());
                    con.open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                    this.clear();
                }
            }
        }
    }          
}

如何在下一页加载页面时解密图像。我尝试了很多东西,但都做不到。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)