Security :: Changing The Hash Algorithm Used For CreateUserWizard?
Oct 1, 2010
I am rewriting my PHP website into C# .NET, and I need to be able to set the algorithm used by the CreateUserWizard / Membership Provider to SHA1 so that I can port all of the user accounts over without having to force them all to reset their passwords when this project is complete. At current glance it doesn't look like it is using SHA-1, and my Googlefoo is failing me.
can I change the password algorithm and still use the sqlMembershipProvider or do I have to create a new sqlMembershipProvider. If so, are they any step by step tutorials on how to do that.
Using sha As New SHA256Managed Using memStream As New MemoryStream(Encoding.ASCII.GetBytes("Hello World!")) Dim hash() As Byte = sha.ComputeHash(memStream) Dim res As String = Encoding.Default.GetString(hash) End Using End Using
I have been unable to recreate the same hash for the same values with these two bits of code.
The javascript implementation returns: 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069
and the vb.net example returns: ƒeñüS-ÁHÖ]ü-KÖw(JÝÒ mi"
What am I missing? I assume it's something to do with the character encoding?
Hopefully someone knows a way to fix this issue, but here is my problem. I need to be able to recreate a md5 hash that will be the equivalent of the hash that php would generate.
The encoding I have tried is listed below. None of these will produce the same values.
PasswordDeriveBytes take 4 paramteres and return an encrypted key basead on 4 parameters: passPhrase, saltValue, hashAlgoithm and password iteration
I wonder what algorithm PasswordDeviveBytes are using, so I can tell someone who are not .NET programmer that this secretkey was made by that alogorithm and that he can use this algorithm also - And then he should get the same results as PasswordDeriveBytes method
I need an example on how to implement AES encryption/decryption in .NET. I've been googling but haven't yet found any good examples. I've for example found AES example whih after some research wasn't 100% AES. I have to make sure by AES encryption/decryption is 100% AES, as I have to send email to the authorities explaining how I use AES (with secret key all), so they can hire some encryption expert which verify that we encrypt/decrypt it correctly. So he can verify that the what I implemented in AES is actually 100%. I'm reading the AES standard and how it's to be implemted in .NET Here is some code I'm having trouble with:
[Code]....
Which throws an CryptographicException: Specified key is not a valid size for this algorithm.
I have a page that will receive an encrypted query string containing a user name, password & jobId, the problem is I don't want someone to be able to grab the encrypted url (browser history) and reuse it, so it has to change each time the page is requested.
The only way I can think of doing this is by having an encryption key associated with the the job and then change it after each time the page is requested. The client would either request the key or the entire url from a web service residing on my server.
Is this the best way to do this?
Is there a mutating encryption method out there I could use "out the box"?
I am planning to write a custom 'password reset control' that allows an Administrator to reset the user's password, while using the ASP.NET built-in 'login' and 'create new user' controls. For this reason, I will need the hashing algorithm (hopefully I can call some .NET class and method) to perform this.
I need to pass some info to a 3rd party (for tracking) and they require I provide a checksum value which is an md5 hashed amalgamation of some of the other values. This is my code :
[Code]....
They keep rejecting my checksum. When I have tested for the following value passed in preConvert - 300265215063.79 I get :
My code gives : ED4463C84DE9D21B54C4E62F2D72CE
An online MD5 hash gives : 0ed40463c84de9d21b54c4e62f2d72ce
Which apart from the case, is exactly the same apart from missing 2 zeroes.
i m trying to change my password. the password in database is in hash formatting. the class FormsAuthentication. is using for hash conversion. the password is indicating the same in if condition. but after if applying it suddenly go on else part , even the value on if condition is same.
I am here to generate a unique pin no of fixed length. All my previously generate pin no are stored in database and i want newly generated pin no to be unique.
I want to combine serial no and custom key and generate unique pin no.
I am trying to insert a string and random number into the database as hash sha1 then loggin in against it. the problem is if I use hash it wont login but if i dont use hash the login works fine... Code below.
insert hash into db Dim user As New Label user.Visible = False user.Text = (myDataReader2.Item("username")) MyConnection2.Close() Dim MyConnection3 As New Data.SqlClient.SqlConnection("Data Source=xxx") Dim mycommand3 As New Data.SqlClient.SqlCommand("Update Register SET [Password] = @password WHERE [username] = '" & user.Text & "' AND [email] = '" & email.Text & "'", MyConnection3) Dim pass As String Dim rnd As Integer, randomNum As New Random rnd = randomNum.Next(1000, 10000) pass = "Pass" & rnd mycommand3.Parameters.AddWithValue("@password", FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "SHA1")) MyConnection3.Open() mycommand3.ExecuteNonQuery() login page Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs) ' Fires upon attempting to authenticate the use If Not (HttpContext.Current.User Is Nothing) Then If HttpContext.Current.User.Identity.IsAuthenticated Then If TypeOf HttpContext.Current.User.Identity Is FormsIdentity Then Dim fi As FormsIdentity = CType(HttpContext.Current.User.Identity, FormsIdentity) Dim fat As FormsAuthenticationTicket = fi.Ticket Dim astrRoles As String() = fat.UserData.Split("|"c) HttpContext.Current.User = New GenericPrincipal(fi, astrRoles) End If End If End If End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim myConnection As New SqlClient.SqlConnection Dim myCommand As New SqlClient.SqlCommand Dim intUserCount As Integer Dim strSQL As String myConnection = New SqlClient.SqlConnection("Data Source=jrome2.db.4961680.hostedresource.com; Initial Catalog=jrome2; User ID=jrome2; Password=Richard050283;") strSQL = "SELECT COUNT(*) FROM Register " _ & "WHERE UserName='" & Replace(txtusername.Text, "'", "''") & "' " _ & "AND Password='" & Replace(txtpassword.Text, "'", "''") & "';" myCommand = New SqlClient.SqlCommand(strSQL, myConnection) myConnection.Open() intUserCount = myCommand.ExecuteScalar() myConnection.Close() 'Response.Write(intUserCount) If intUserCount > 0 Then FormsAuthentication.Initialize() Dim strRole As String = AssignRoles(txtusername.Text) 'The AddMinutes determines how long the user will be logged in after leaving 'the site if he doesn't log off. Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _ txtusername.Text, DateTime.Now, _ DateTime.Now.AddMinutes(30), False, strRole, _ FormsAuthentication.FormsCookiePath) Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, _ FormsAuthentication.Encrypt(fat))) Response.Redirect(FormsAuthentication.GetRedirectUrl(txtusername.Text, False)) Else login.Text = "Incorrect Log In Information" End If End Sub Private Function ValidateUser(ByVal strUsername As String, ByVal strPassword As String) _ As Boolean 'Return true if the username and password is valid, false if it isn't Return CBool(strUsername = " & Replace(txtusername.Text, " AndAlso strPassword = " & Replace(txtpassword.Text, ") End Function Private Function AssignRoles(ByVal strUsername As String) As String Dim myConnection As New SqlClient.SqlConnection Dim myCommand As New SqlClient.SqlCommand Dim intUserCount As Integer Dim strSQL As String myConnection = New SqlClient.SqlConnection("Data Source=jrome2.db.4961680.hostedresource.com; Initial Catalog=jrome2; User ID=jrome2; Password=Richard050283;") strSQL = "SELECT COUNT(*) FROM Register " _ & "WHERE UserName='" & Replace(txtusername.Text, "'", "''") & "' " _ & "AND Password='" & Replace(txtpassword.Text, "'", "''") & "';" myCommand = New SqlClient.SqlCommand(strSQL, myConnection) myConnection.Open() intUserCount = myCommand.ExecuteScalar() myConnection.Close() 'Response.Write(intUserCount) If intUserCount > 0 Then Return "client" Else Return String.Empty End If End Function Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) txtusername.Text = String.Empty txtpassword.Text = String.Empty End Sub
I am tasked with a project to convert words from strings to numbers . I have to do this while ensuring collision-avoidance. i.e training -> 10232323
We are storing the numbers in a database and when we retrieve the records from the database, we will reverse hash and convert the number back to a string 10232323 -> training
As you might have guessed - this is not an area that I am familiar with. I researched the overridable System.Object.GetHashCode() method, but Microsoft warns that there is little guarantee that the default implementation of GetHashCode() avoids collisions.
So I am left stuck. I would like to create an algorithm, but I have no idea where to start.
Also, the function should accept unicode characters - in the event the company decides to internationalize.
I customized CreateUserWizard, added WizardSteps.... If I reload the page (F5) and I am in Step3, it goes back to the first step. How do I remain in the same Wizardstep if the user refreshes the page.
I have a blank page with a Captcha called Captcha.aspx. I would like to add this as the second step to a CreateUserwizard. The following is what I want to achieve:i) User enters their Username etc in CreateUserwizard and clicks the CreateUser Button(ii) After clicking the CreateUser button, user sees the Captcha.aspx page and enters the correct stuff in the Captcha box and click a continue button(iii) User account is created if correct details were entered in the Captcha else no account is created, rather the user is sent to a page informing him or her that no account has been created
I like to create users without the userwizard.Normally i do this with the userwizard, but i don't have it right now, want to do it with pure code.But how can i add the password to the user?Normally i use this code:
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard.UserName, true); p.Email = ((TextBox)CreateUserWizard.CreateUserStep.ContentTemplateContainer.FindControl("Email")).Text; p.Save();
What is the best, i want just the easy way, like if i add a user with the Asp.Net web administration tool.
Not sure if I'm posting the question in the right category.
1) I'm working in a project where encryption of data is high priority. Could some one suggest what would be the best encryption method to protect data from being cracked.
I'm using TCP/IP protocol.
2) Is HTTPS totally secured. If I'm using HTTPS, does that mean that there is no encryption of data required in the coding?
I'm using the ASP.NET Membership system to add new users to my site. It's working fine. But I'd like to force the user to enter additional required information (on a different aspx page) before they can successfully complete the registration process. What is the easiest way to direct and force the user to complete a different page of fields (stored in SQL in columns located on the same table as the basic membership fields) as a condition of completing the registration process?
In searching different sites, I see additional properties and templates like Wizard Steps, Continue button, Finish button---but I'm not clear as to which of these (perhaps none of them?) will allow me to accomplish this goal.
I have a createuserwizard where people input their information. When I hit enter after typing in the data in the form it returns me to the homepage. How do I set the default button for the createuserwizard so that it goes to the next step rather then back to my homepage.
I'm not sure if it has to do with the fact that I have a defaultbutton set in a form in the masterpage and that defaultbutton overides the other pages defualtbutton....
In a CreateUserWizard there are 2 dropdownlist to set the country and city of a new user. Where and how can those dropdownlists be assigned datasources from datareader, refreshed and accessed in codebehind for interaction between country and city? I tried but keep getting errors saying control not found. Is it impossible to do codebehind events with CreateUserWizard?
1) Extend the CreateUserWizard control to insert additional User fields (eg. Gender, Age, Occupation, Address, Phone, etc...).
OR
2) Create a brand new Custom Membership Provider of my own and skip using the inbuilt ASP.NET membership system.
What is the best way to create a new User system with my own tables of User data as described above?
Should i perhaps still use the standard ASP.NET membership system and then extend my own Registration page to add more User data to my own SQL backend table using the Identity value inserted into the aspnet_users table?
I have created a C# registration page that includes a secret question and answer. The secret questions are in a dropdown list. When the form is submitted, all field information gets written to my mssql database successfully but the value selected in the dropdown ListItem gets NULL inserted instead of the question.