What algorithm is the best to use for storing, sending passwords, account data, and other information between desktop apps over the network.

Looking for the best crypto-resistive algorithm to use in C# applications.

The information I want to send is likke this:


The information is transfered between two applications on desktop. Looking for attack resistant algorithm so when I recieve this information on other side, I need to decrypt it.

Sending information over TCP client/server.

closed as unclear what you're asking by Shurmajee, Tobi Nary, Steve, CaffeineAddiction, schroeder Oct 4 '17 at 21:14

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


There is not a known answer to this. There are algorithms that are viewed as secure and algorithms that aren't - "secure" algorithms may contain flaws but to date they are not publicly known. Schneier suggests with a perfect algorithm a 256 bit key would need more energy than a supernova to brute force. So any secure algorithm with a key length of 256 bits or more should be fine.

What algorithm is the best to use for storing, sending passwords, account data, and other information between apps over the network.

I would highly suggest using SSL to send data over a network. There are ample resources online available for choosing appropriate algorithms for key exchange, cipher and hashing. The lazy way to do this in C# is HTTPS.

Passwords should never be stored encrypted. Use a salted hash. Or more specifically use a library which implements something like PBKDF2 with a long random salt. A quick skim doesn't show any issues with this C# guide.

  • I updated question with infoo what I want to send between apps – Markiian Benovskyi Oct 4 '17 at 13:59

I'm assuming by "crypto-resistive" you mean resistant to attacks. This is necessary, but to choose the best algorithm for your needs, you need to be much more specific.

Different algos have different advantages depending on what they're encrypting and what your priorities are for latency/storage/security across all elements of the data pipeline.

So... you'll need to provide more information.

Not the answer you're looking for? Browse other questions tagged or ask your own question.