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 500179
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T06:03:39+00:00 2026-05-13T06:03:39+00:00

I’ve read quite a few times how I shouldn’t use cryptography if I’m not

  • 0

I’ve read quite a few times how I shouldn’t use cryptography if I’m not an expert. Basically both Jeff and Eric tell you the same:

Cryptography is difficult, better buy the security solution from experts than doing it yourself.

I completely agree, for a start it’s incredibly difficult to perceive all possible paths an scenario might take, all the possible attacks against it and against your solution… but then When should we use it?

I will face in a few months with the task of providing a security solution to a preexisting solution we have. That is, we exchange data between servers, second phase of the project is providing good security to it. Buying a third party solution will eat up the budget anyway so … When is it good to use cryptography for a security solution? Even if you are not a TOP expert.

Edit: To clarify due to some comments.
The project is based on data transport across network locations, the current implementation allows for a security layer to be placed before transport and we can make any changes in implementation we like (assuming reasonable changes, the architecture is well design so changes should have an acceptable impact). The question revolves around this phrase from Eric Lippert:

I don’t know nearly enough about cryptography to safely design or implement a crypto-based security system.

We’re not talking about reinventing the wheel, I had in mind a certain schema when I designed the system that implied secure key exchange, encryption and decryption and some other “counter measures” (man in the middle, etc) using C# .NET and the included cryptography primitives, but I’m by no means an expert in the field so when I read that, I of course start doubting myself. Am I even capable of implementing a secure system? Would it always be parts of the system that will be insecure unless I subcontract that part?

  • 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-05-13T06:03:39+00:00Added an answer on May 13, 2026 at 6:03 am

    I think this blog posting (not mine!) gives some good guidelines.

    Other than that there are some things you should never do unless you’re an expert. This is stuff like implementing your own crypto algorithm (or your own version of a published algorithm). It’s just crazy to do that yourself! (When there’s CAPI, JCE, OpenSSL, ….)

    Beyond that though if you’re ‘inventing’ anything it’s almost certainly wrong. In the Coding Horror post you linked to – the main mistake to my mind is that he’s doing it a very low level and you just don’t need to. If you were encrypting things in Java (I’m not so familiar with .NET) you could use Jasypt which uses strong default algorithms and parameters and doesn’t require you to know about ECB and CBC (though, arguably, you should anyway just because…).

    There is going to be a prebuilt system for just about anything you’re going to want to do with crypto. If you’re storing keys then theres KeyCzar, in other cases theres Jasypt. The point is if you’re doing anything ‘unusual’ with crypto – you shouldn’t be; if you’re doing something not ‘unusual’ then you don’t need to do the crypto yourself. Don’t invent a new way to store keys, generate keys from passwords, verify signatures etc – it’s not necessary, it’s complicated and you’ll almost certainly make a mistake unless you’re very very careful…

    So… I don’t think you necessarily need to be afraid of encrypting things but be aware that if you’re specifying algorithms and parameters to those algorithms directly in your code it is probably not good. There are exceptions to any rule but as in the blog post I linked above – if you type AES into your code you’re doing it wrong!


    The key “take-away” from the Matasano blog post is right at the end (note that TLS is a more precise name for SSL):

    THOMAS PTACEK

    GPG for data at rest. TLS for data in
    motion.

    NATE LAWSON

    You can also use Guttman’s cryptlib,
    which has a sane API. Or Google
    Keyczar. They both have really simple
    interfaces, and they try to make it
    hard to do the wrong thing. What we
    need are fewer libraries with higher
    level interfaces. But we also need
    more testing for those libraries.

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

Sidebar

Related Questions

link Im having trouble converting the html entites into html characters, (&# 8217;) i
I am trying to understand how to use SyndicationItem to display feed which is
Basically, what I'm trying to create is a page of div tags, each has
I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I want use html5's new tag to play a wav file (currently only supported
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
I need a function that will clean a strings' special characters. I do NOT
I'm trying to use string.replace('’','') to replace the dreaded weird single-quote character: ’ (aka
I am writing an app with both english and french support. The app requests
Is it possible to replace javascript w/ HTML if JavaScript is not enabled on

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.