How to avoid using System.String with Rfc2898DeriveBytes in C#Is this security/encryption scheme...

Solve a logarithmic equation by NSolve

What is the evidence on the danger of feeding whole blueberries and grapes to infants and toddlers?

Why does The Ancient One think differently about Doctor Strange in Endgame than the film Doctor Strange?

What professions would a medieval village with a population of 100 need?

What can I do to keep a threaded bolt from falling out of its slot?

Does an object count as "being moved" when placed in a Bag of Holding before its wielder moves, and then after moving they take the object out again?

Have only girls been born for a long time in this village?

Is there such a thing as too inconvenient?

System to validate run time complexity requirements

Were there 486SX revisions without an FPU on the die?

In an emergency, how do I find and share my position?

If the first law of thermodynamics ensures conservation of energy, why does it allow systems to lose energy?

On the feasibility of space battleships

Why did MS-DOS applications built using Turbo Pascal fail to start with a division by zero error on faster systems?

Was Switzerland really impossible to invade during WW2?

How would one country purchase another?

How to refer to a regex group in awk regex?

How to dismiss intrusive questions from a colleague with whom I don't work?

Can a character spend multiple hit dice at level 1?

Are required indicators necessary for radio buttons?

confused about grep and the * wildcard

Do ability scores have any effect on casting Wish spell

Concatenation of the result of a function with a mutable default argument in python

How big would a Daddy Longlegs Spider need to be to kill an average Human?



How to avoid using System.String with Rfc2898DeriveBytes in C#


Is this security/encryption scheme secure?HMACSHA512 versus Rfc2898DeriveBytes for password hashSecurity concerns with a “fiddle” site?How to avoid web service spam?Is Rfc2898DeriveBytes using HMAC SHA1 still considered “secure enough” for hashing passwords?Passing encryption with IV as a single arrayAvoid being hacked with brute-force attack






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







25















I am creating a .NET core webapp in C# that takes in a user password and hashes it to be stored on a server. I'm using Rfc2898DeriveBytes along with a randomly generated salt. I've read, however, that I should avoid using strings in the entire process since strings cannot be removed from memory. I know that .NET core has a PasswordBox that keeps the password as a SecureString, but SecureStrings cannot be converted to a byte array to be passed to Rfc2898DeriveBytes's constructor without a great deal of shenanigans.



Since the webapp is only going to run on my server, can I just convert the SecureString back to a string as soon as it has been passed into my webapp? If an attacker manages to access the server's RAM to search for an undeleted string, there's probably very little I can do to protect anything to begin with.



If I should still go through with using SecureStrings, what are the best practices for hashing it to be stored?










share|improve this question









New contributor



Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




























    25















    I am creating a .NET core webapp in C# that takes in a user password and hashes it to be stored on a server. I'm using Rfc2898DeriveBytes along with a randomly generated salt. I've read, however, that I should avoid using strings in the entire process since strings cannot be removed from memory. I know that .NET core has a PasswordBox that keeps the password as a SecureString, but SecureStrings cannot be converted to a byte array to be passed to Rfc2898DeriveBytes's constructor without a great deal of shenanigans.



    Since the webapp is only going to run on my server, can I just convert the SecureString back to a string as soon as it has been passed into my webapp? If an attacker manages to access the server's RAM to search for an undeleted string, there's probably very little I can do to protect anything to begin with.



    If I should still go through with using SecureStrings, what are the best practices for hashing it to be stored?










    share|improve this question









    New contributor



    Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.
























      25












      25








      25


      2






      I am creating a .NET core webapp in C# that takes in a user password and hashes it to be stored on a server. I'm using Rfc2898DeriveBytes along with a randomly generated salt. I've read, however, that I should avoid using strings in the entire process since strings cannot be removed from memory. I know that .NET core has a PasswordBox that keeps the password as a SecureString, but SecureStrings cannot be converted to a byte array to be passed to Rfc2898DeriveBytes's constructor without a great deal of shenanigans.



      Since the webapp is only going to run on my server, can I just convert the SecureString back to a string as soon as it has been passed into my webapp? If an attacker manages to access the server's RAM to search for an undeleted string, there's probably very little I can do to protect anything to begin with.



      If I should still go through with using SecureStrings, what are the best practices for hashing it to be stored?










      share|improve this question









      New contributor



      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I am creating a .NET core webapp in C# that takes in a user password and hashes it to be stored on a server. I'm using Rfc2898DeriveBytes along with a randomly generated salt. I've read, however, that I should avoid using strings in the entire process since strings cannot be removed from memory. I know that .NET core has a PasswordBox that keeps the password as a SecureString, but SecureStrings cannot be converted to a byte array to be passed to Rfc2898DeriveBytes's constructor without a great deal of shenanigans.



      Since the webapp is only going to run on my server, can I just convert the SecureString back to a string as soon as it has been passed into my webapp? If an attacker manages to access the server's RAM to search for an undeleted string, there's probably very little I can do to protect anything to begin with.



      If I should still go through with using SecureStrings, what are the best practices for hashing it to be stored?







      passwords web-application .net asp.net-core






      share|improve this question









      New contributor



      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share|improve this question









      New contributor



      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share|improve this question




      share|improve this question








      edited 2 days ago









      schroeder

      85.1k34 gold badges190 silver badges228 bronze badges




      85.1k34 gold badges190 silver badges228 bronze badges






      New contributor



      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      asked 2 days ago









      JeffJeff

      1282 silver badges5 bronze badges




      1282 silver badges5 bronze badges




      New contributor



      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




      New contributor




      Jeff is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.



























          2 Answers
          2






          active

          oldest

          votes


















          29













          Using SecureString correctly is difficult, and protects against a threat surface that is unlikely for most use cases. As you say, if an attacker can read your memory, you have other problems. I would advise to use normal strings instead of SecureString, unless you are worried by attackers carrying liquid nitrogen with physical access to your server.



          If you really want to use SecureStrings, you should P/Invoke the Windows crypto API so that you have control over memory. I have an example in my blog post Comparing secure strings in .NET.






          share|improve this answer





















          • 7





            No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

            – aland
            yesterday



















          45













          The .NET Core team specifically recommends against using SecureString for new development. See the SecureString documentation:




          We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub.




          as well as the team's reasoning on GitHub:




          Motivation




          • The purpose of SecureString is to avoid having secrets stored in the process
            memory as plain text.

          • However, even on Windows, SecureString doesn't exist as an OS concept.


            • It just makes the window getting the plain text shorter; it doesn't fully
              prevent it as .NET still has to convert the string to a plain text
              representation.

            • The benefit is that the plain text representation doesn't hang around
              as an instance of System.String -- the lifetime of the native buffer is
              shorter.



          • The contents of the array is unencrypted except on .NET Framework.


            • In .NET Framework, the contents of the internal char array is encrypted.
              .NET doesn't support encryption in all environments, either
              due to missing APIs or key management issues.









          share|improve this answer










          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.

















          • 2





            Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

            – MechMK1
            2 days ago











          • @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

            – Vivelin
            2 days ago











          • The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

            – Andrew Savinykh
            2 days ago






          • 2





            @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

            – Vivelin
            yesterday











          • @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

            – MechMK1
            yesterday














          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "162"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Jeff is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsecurity.stackexchange.com%2fquestions%2f215554%2fhow-to-avoid-using-system-string-with-rfc2898derivebytes-in-c%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          29













          Using SecureString correctly is difficult, and protects against a threat surface that is unlikely for most use cases. As you say, if an attacker can read your memory, you have other problems. I would advise to use normal strings instead of SecureString, unless you are worried by attackers carrying liquid nitrogen with physical access to your server.



          If you really want to use SecureStrings, you should P/Invoke the Windows crypto API so that you have control over memory. I have an example in my blog post Comparing secure strings in .NET.






          share|improve this answer





















          • 7





            No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

            – aland
            yesterday
















          29













          Using SecureString correctly is difficult, and protects against a threat surface that is unlikely for most use cases. As you say, if an attacker can read your memory, you have other problems. I would advise to use normal strings instead of SecureString, unless you are worried by attackers carrying liquid nitrogen with physical access to your server.



          If you really want to use SecureStrings, you should P/Invoke the Windows crypto API so that you have control over memory. I have an example in my blog post Comparing secure strings in .NET.






          share|improve this answer





















          • 7





            No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

            – aland
            yesterday














          29












          29








          29







          Using SecureString correctly is difficult, and protects against a threat surface that is unlikely for most use cases. As you say, if an attacker can read your memory, you have other problems. I would advise to use normal strings instead of SecureString, unless you are worried by attackers carrying liquid nitrogen with physical access to your server.



          If you really want to use SecureStrings, you should P/Invoke the Windows crypto API so that you have control over memory. I have an example in my blog post Comparing secure strings in .NET.






          share|improve this answer













          Using SecureString correctly is difficult, and protects against a threat surface that is unlikely for most use cases. As you say, if an attacker can read your memory, you have other problems. I would advise to use normal strings instead of SecureString, unless you are worried by attackers carrying liquid nitrogen with physical access to your server.



          If you really want to use SecureStrings, you should P/Invoke the Windows crypto API so that you have control over memory. I have an example in my blog post Comparing secure strings in .NET.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 days ago









          SjoerdSjoerd

          22.7k9 gold badges54 silver badges72 bronze badges




          22.7k9 gold badges54 silver badges72 bronze badges











          • 7





            No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

            – aland
            yesterday














          • 7





            No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

            – aland
            yesterday








          7




          7





          No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

          – aland
          yesterday





          No liquid nitrogen needed: there software (Heartbleed) vulnerabilities that allow reading parts of RAM, and hardware vulnerabilities like Spectre can be exploited in a cloud environment. But I agree that it's rather unlikely and not something most web apps should be concerned with.

          – aland
          yesterday













          45













          The .NET Core team specifically recommends against using SecureString for new development. See the SecureString documentation:




          We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub.




          as well as the team's reasoning on GitHub:




          Motivation




          • The purpose of SecureString is to avoid having secrets stored in the process
            memory as plain text.

          • However, even on Windows, SecureString doesn't exist as an OS concept.


            • It just makes the window getting the plain text shorter; it doesn't fully
              prevent it as .NET still has to convert the string to a plain text
              representation.

            • The benefit is that the plain text representation doesn't hang around
              as an instance of System.String -- the lifetime of the native buffer is
              shorter.



          • The contents of the array is unencrypted except on .NET Framework.


            • In .NET Framework, the contents of the internal char array is encrypted.
              .NET doesn't support encryption in all environments, either
              due to missing APIs or key management issues.









          share|improve this answer










          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.

















          • 2





            Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

            – MechMK1
            2 days ago











          • @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

            – Vivelin
            2 days ago











          • The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

            – Andrew Savinykh
            2 days ago






          • 2





            @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

            – Vivelin
            yesterday











          • @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

            – MechMK1
            yesterday
















          45













          The .NET Core team specifically recommends against using SecureString for new development. See the SecureString documentation:




          We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub.




          as well as the team's reasoning on GitHub:




          Motivation




          • The purpose of SecureString is to avoid having secrets stored in the process
            memory as plain text.

          • However, even on Windows, SecureString doesn't exist as an OS concept.


            • It just makes the window getting the plain text shorter; it doesn't fully
              prevent it as .NET still has to convert the string to a plain text
              representation.

            • The benefit is that the plain text representation doesn't hang around
              as an instance of System.String -- the lifetime of the native buffer is
              shorter.



          • The contents of the array is unencrypted except on .NET Framework.


            • In .NET Framework, the contents of the internal char array is encrypted.
              .NET doesn't support encryption in all environments, either
              due to missing APIs or key management issues.









          share|improve this answer










          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.

















          • 2





            Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

            – MechMK1
            2 days ago











          • @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

            – Vivelin
            2 days ago











          • The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

            – Andrew Savinykh
            2 days ago






          • 2





            @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

            – Vivelin
            yesterday











          • @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

            – MechMK1
            yesterday














          45












          45








          45







          The .NET Core team specifically recommends against using SecureString for new development. See the SecureString documentation:




          We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub.




          as well as the team's reasoning on GitHub:




          Motivation




          • The purpose of SecureString is to avoid having secrets stored in the process
            memory as plain text.

          • However, even on Windows, SecureString doesn't exist as an OS concept.


            • It just makes the window getting the plain text shorter; it doesn't fully
              prevent it as .NET still has to convert the string to a plain text
              representation.

            • The benefit is that the plain text representation doesn't hang around
              as an instance of System.String -- the lifetime of the native buffer is
              shorter.



          • The contents of the array is unencrypted except on .NET Framework.


            • In .NET Framework, the contents of the internal char array is encrypted.
              .NET doesn't support encryption in all environments, either
              due to missing APIs or key management issues.









          share|improve this answer










          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.









          The .NET Core team specifically recommends against using SecureString for new development. See the SecureString documentation:




          We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub.




          as well as the team's reasoning on GitHub:




          Motivation




          • The purpose of SecureString is to avoid having secrets stored in the process
            memory as plain text.

          • However, even on Windows, SecureString doesn't exist as an OS concept.


            • It just makes the window getting the plain text shorter; it doesn't fully
              prevent it as .NET still has to convert the string to a plain text
              representation.

            • The benefit is that the plain text representation doesn't hang around
              as an instance of System.String -- the lifetime of the native buffer is
              shorter.



          • The contents of the array is unencrypted except on .NET Framework.


            • In .NET Framework, the contents of the internal char array is encrypted.
              .NET doesn't support encryption in all environments, either
              due to missing APIs or key management issues.










          share|improve this answer










          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.








          share|improve this answer



          share|improve this answer








          edited yesterday









          eis

          1054 bronze badges




          1054 bronze badges






          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.








          answered 2 days ago









          VivelinVivelin

          5013 silver badges7 bronze badges




          5013 silver badges7 bronze badges




          New contributor



          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.




          New contributor




          Vivelin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.













          • 2





            Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

            – MechMK1
            2 days ago











          • @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

            – Vivelin
            2 days ago











          • The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

            – Andrew Savinykh
            2 days ago






          • 2





            @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

            – Vivelin
            yesterday











          • @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

            – MechMK1
            yesterday














          • 2





            Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

            – MechMK1
            2 days ago











          • @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

            – Vivelin
            2 days ago











          • The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

            – Andrew Savinykh
            2 days ago






          • 2





            @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

            – Vivelin
            yesterday











          • @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

            – MechMK1
            yesterday








          2




          2





          Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

          – MechMK1
          2 days ago





          Very interesting, great first answer! It should be noted that process memory in general is only really an attack surface if an attacker is able to get access to it - something that is generally not part of the threat model of a web application, unless on a shared host.

          – MechMK1
          2 days ago













          @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

          – Vivelin
          2 days ago





          @MechMK1 That is mentioned in the other answer already, I just wanted to add the official recommendation, too.

          – Vivelin
          2 days ago













          The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

          – Andrew Savinykh
          2 days ago





          The quoted part says nothing about recommending against using SecureString. Could you please quote (or bold) the relevant parts.

          – Andrew Savinykh
          2 days ago




          2




          2





          @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

          – Vivelin
          yesterday





          @AndrewSavinykh It's in the first link and doesn't really say more than that they don't recommend it for new development and contains a link to the quoted part.

          – Vivelin
          yesterday













          @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

          – MechMK1
          yesterday





          @AndrewSavinykh I assume because it's a huge pain to work with, and in the end it has to end up in plaintext anyways, so there is little use to it

          – MechMK1
          yesterday










          Jeff is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Jeff is a new contributor. Be nice, and check out our Code of Conduct.













          Jeff is a new contributor. Be nice, and check out our Code of Conduct.












          Jeff is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Information Security Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsecurity.stackexchange.com%2fquestions%2f215554%2fhow-to-avoid-using-system-string-with-rfc2898derivebytes-in-c%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Hudson River Historic District Contents Geography History The district today Aesthetics Cultural...

          The number designs the writing. Feandra Aversely Definition: The act of ingrafting a sprig or shoot of one...

          Ayherre Geografie Demografie Externe links Navigatiemenu43° 23′ NB, 1° 15′ WL43° 23′ NB, 1°...