Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7782677
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T19:36:58+00:00 2026-06-01T19:36:58+00:00

When studying Java I learned that Strings were not safe for storing passwords ,

  • 0

When studying Java I learned that Strings were not safe for storing passwords, since you can’t manually clear the memory associated with them (you can’t be sure they will eventually be gc’ed, interned strings may never be, and even after gc you can’t be sure the physical memory contents were really wiped). Instead, I were to use char arrays, so I can zero-out them after use. I’ve tried to search for similar practices in other languages and platforms, but so far I couldn’t find the relevant info (usually all I see are code examples of passwords stored in strings with no mention of any security issue).

I’m particularly interested in the situation with browsers. I use jQuery a lot, and my usual approach is just the set the value of a password field to an empty string and forget about it:

$(myPasswordField).val("");

But I’m not 100% convinced it is enough. I also have no idea whether or not the strings used for intermediate access are safe (for instance, when I use $.ajax to send the password to the server). As for other languages, usually I see no mention of this issue (another language I’m interested in particular is Python).

I know questions attempting to build lists are controversial, but since this deals with a common security issue that is largely overlooked, IMHO it’s worth it. If I’m mistaken, I’d be happy to know just from JavaScript (in browsers) and Python then. I was also unsure whether to ask here, at security.SE or at programmers.SE, but since it involves the actual code to safely perform the task (not a conceptual question) I believe this site is the best option.

Note: in low-level languages, or languages that unambiguously support characters as primitive types, the answer should be obvious (Edit: not really obvious, as @Gabe showed in his answer below). I’m asking for those high level languages in which “everything is an object” or something like that, and also for those that perform automatic string interning behind the scenes (so you may create a security hole without realizing it, even if you’re reasonably careful).

Update: according to an answer in a related question, even using char[] in Java is not guaranteed to be bulletproof (or .NET SecureString, for that matter), since the gc might move the array around so its contents might stick in the memory even after clearing (SecureString at least sticks in the same RAM address, guaranteeing clearing, but its consumers/producers might still leave traces).

I guess @NiklasB. is right, even though the vulnerability exists, the likelyhood of an exploit is low and the difficulty to prevent it is high, that might be the reason this issue is mostly ignored. I wish I could find at least some reference of this problem concerning browsers, but googling for it has been fruitless so far (does this scenario at least have a name?).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T19:36:59+00:00Added an answer on June 1, 2026 at 7:36 pm

    The .NET solution to this is SecureString.

    A SecureString object is similar to a String object in that it has a text value. However, the value of a SecureString object is automatically encrypted, can be modified until your application marks it as read-only, and can be deleted from computer memory by either your application or the .NET Framework garbage collector.

    Note that even for low-level languages like C, the answer isn’t as obvious as it seems. Modern compilers can determine that you are writing to the string (zeroing it out) but never reading the values you read out, and just optimize away the zeroing. In order to prevent optimizing away the security, Windows provides SecureZeroMemory.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've only learned Java last quarter of 2010. I can say the knowledge I
While studying java with several books, none of them seem to make it clear
I am studying servlets I read that servlets are java programs but there are
I'm studying Java on my own. One of the exercises is the following, however
I began studying Java Regular Expression recently and I found some really intersting task.For
Hey peoples, I've been studying Java for a couple of weeks, and have decided
In studying for the OCP Java Programmer Exam, I was slightly surprised to see
I'm studying for a programming interview in Java which may involve database access. Is
I'm almost finished with the book Head First Java. The reason I'm studying this
Total noobie question here. I'm just learning Java, and studying passing arguments to functions.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.