Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm not looking necessarily for implementations in any language (although it would help to list those resources as well), but what I am most interested in is a discussion of what advantages and disadvantages certain encryption methods have when applied to a given scenario. Just for a frame of reference:

  1. I want a user to enter a username/password that will be stored in a database.
  2. I want to encrypt a PDF file and send it to a friend and have her decrypt it.
  3. I need to encrypt a small amount of plain text and have someone else decrypt it.

I'm sure there are better examples, and there is sure to be some crossover, but it seems like much of the time spent on encryption is deciding what is the best method given the variables or scenario involved. Is it a one way hash? Do others need to decrypt it? Am I the only one to decrypt it? Is it binary or text? Are there file size limits? Is it stored, or sent over a network?

share|improve this question
I disagree with the close vote as "list/recommendation" because the question is not about that. However your question seems a bit too broad. The answer to the username/password part is easily googleable (hint: look for KDFs especially on Sec.SE), and to the other two points the question is "it depends". Search for "symmetric vs asymmetric ciphers" for a quick look. I hope this helps. – rath Sep 25 '13 at 1:46
For the password part, see How to securely hash passwords? on security.SE – CodesInChaos Sep 25 '13 at 7:26
I think it's a fair question, when you look at it this way: what is a good approach to selecting cryptographic solutions? @RichieFrame 's answer below is a good one: start with a trustworthy document. – John Deters Sep 25 '13 at 15:15
I know list questions are frowned upon because there is no "right" answer, but without detailing all the major scenarios for encrypting data and asking about each one this was about as specific as I could get. IMO it is better to list the resources that already do that. – Brian Reindel Sep 25 '13 at 19:14
up vote 5 down vote accepted

Start with NIST Computer Security Division:

FIPS (Federal Information Processing Standards) specifies multiple use scenarios in their Publications and Special Publications, many of which include the type of scenarios on your short list, as well as related scenarios. These are primarily for federal use, but if your use case matches that of the government their publications will apply.

Additionally, there are numerous books, including one called "Cryptography for Developers", which goes more into the application development side of implementing cryptographic systems. Niels Ferguson and Bruce Schneier of the Twofish team have written several books on practical design and implementation of cryptosystems that focus more on the cryptography side of things.

For more of of an open discussion try the sci.crypt newsgroup, where you can specify a specific scenario in detail and engage in debate; there are also other moderated locations to do this as well.

Hard as I try not to do the "list/recommendation" answer, thats kind of how it turned out, there really is not a better way to answer that broad of a question, individual questions on specific scenarios that are not answerable by the wiki/google method will provide more specific answers.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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