Hola gente del foro.
Necesito cifrar las variables URL que viajan de una página a otra.
Alguien me puede ayudar con esto???
Gracias de antemano...
| ||||
Aqui podrás encontrar un algoritmo simétrico con un key asingnado por tí que usaras para pasar tu cadena por querystring. http://www.codeproject.com/aspnet/encrypt.asp Simple y sencillo de implementar. Prueba y si tienes duas te echamos un cable.. Salu2
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| ||||
De hecho en las faq´s puse un convertidor de vb.net c c# y viceversa.. En cuanto a tu code.. para empezar en c# los bytes se representan de diferente forma ..(&H12 = 0x12..etc) así sería el code para el encriptamiento: Código PHP: Espero te sirva.. |
| ||||
Gracias RootK. Me funcionó perfectamente. Pero tengo otra duda. Resulta que yo utilizo Hiperlink Column y en el Format String. Pongo lo siguiente..... AgrClinicaDet.aspx?id={0}&modo=C Como puedo hacer para que esto vaya cifrado???? Gracias de antemano. |
| ||||
Hacerlo directamente con hyperlink column no es posible.. pero si puedes usar un templatecolunm con un hyper link haciendolo de ésta forma: Cita: y en tu codebehin.. declarar un método de tipo protected para llamar la funcion de encriptamiento:<asp:TemplateColumn> <ItemTemplate> <asp:HyperLink Runat=server NavigateUrl='<%# EncryptString((string)DataBinder.Eval(Container.DataItem,"tu_campo")) %>' ID="hyperLink1"> Algun Texto </asp:HyperLink> </ItemTemplate> </asp:TemplateColumn> Cita: Creo que eso es lo que buscas no..?? protected string EncryptString(string s) { return Encrypt(s,"!#c38?3$"); } Salu2 |
| ||||
Ya lo pude resolver.... En en evento ItemCommand puse lo siguiente.... Código PHP: Pero me di cuenta que el método de encriptación no funciona bien. En ciertos códigos se cae y Devuelve un error. (Por ejemplo con el código 00002) Pensé que tenia algun error cuando lo cambie de VB.NET a C sharp. Pero no es así. Puesto que en la misma URL que me diste http://www.codeproject.com/aspnet/encrypt.asp Existe el mismo código pero en C sharp. Use ese código y también se cae. Da un error de Invalid length for a Base-64 char array. Justo en esta línea Byte[] inputByteArray = inputByteArray = Convert.FromBase64String(strText); Tendré que buscar algun otro método de encriptación...... Saludos |
| ||||
Ahh..ok.. lo que pasa es que a veces genera un espacio dentro del encriptamiento, pero para evitar ese problema haz lo siguiente antes de que desencriptes: Cita: Si te fijas estoy reemplazando los espacios por el signo de "+"protected string EncryptString(string s) { s = s.Replace(" ","+"); return Encrypt(s,"!#c38?3$"); } Creo que con eso queda solucionado. Cualquier cosa por aqui seguimos... Salu2 |
| ||||
Si me habia dado cuenta de eso. Estaba probando haciendo un Trim(), pero no funcionaba. Ahora estoy probando lo que me dijiste pero no funciona. Justo antes de desencriptar hice lo siguiente. string valor=Request.QueryString["id"].Replace(" ","+"); id=FuncGenerales.Decrypt(valor,"&%#@?,:*"); Pero me da el mismo error..... Que puedo hacer????? |
| ||||
Prueba intentando aplicar UrlEncode luego de aplicar el método Encrypt ya que probablemente produzcan caracteres que no son enviados correctamente por el navegador. http://msdn.microsoft.com/library/default.asp? url=/library/en-us/cpref/html/frlrfsystemwebhttpserverutilitymemberstopic.asp Saludos |
| ||||
Cual es el metodo completo que estás usando para encriptar, que key estas usando y cual es la cadena a la que le quieres aplicar el encriptamiento.. ?? Pon esos datos para echarle un ojo y ver que es lo que puede estar pasando porque es la forma en que yo lo hago y hasta ahorita no he tenido problemas. Salu2 |
| ||||
Con este código cargo en DataGrid.... Código PHP: Y asi lo envio hacia la otra página en el evento ItemCommand Código PHP: Código PHP: Código PHP: "00001","00002","00003","00004","00005","00006","0 0007","00008", "00009","00010","00011","00012" Funcionan con todos excepto con el código "00002" Agradezco tu ayuda.... |
| ||||
mm... En cuanto a la codificacion del método no veo errores... pero ésto es lo que me llama la atencion: Cita: por el código que tienes como vas a desencriptar el ID si no lo tienes encriptado..?? Session["modo"]=FuncGenerales.Decrypt(Request.QueryString["modo"],"&%#@?,:*"); id=FuncGenerales.Decrypt(Request.QueryString["id"],"&%#@?,:*"); Tienes ésto: Cita: En último de los casos te faltaría encriptar el ID tambien, checa esa parte..porque por ejemplo modo si lo tienes encriptado aqui:id = e.Item.Cells[1].Text.Trim(); Cita: Pero el id..?? modo=FuncGenerales.Encrypt("M","&%#@?,:*"); Salu2 |
| ||||
Parece que no te fijaste bien RootK. En la carga del grid tengo el código encriptado y lo agrego a una columna oculta en el DataGrid Código PHP: No se porque no funciona justo con el código "00002". Por que con el resto de códigos funciona. Debe ser por ese espacio en blanco que se genera al momento de la encriptación. Pero le hice lo que me dijiste antes de que reemplace los espacios por el símbolo "+". Pero tampoco funciona. Que puede ser????? |
| |||
Hola a todos También tenía el problema y lo solucione de la siguiente forma Para encriptar Código PHP: Código PHP: Espero te sirva Éxitos |