An online service might work if the code was written in verifiable JavaScript and executed client-side.
Well actually that already exists:
https://brainwallet.github.io/#sign
But to be honest I don't think that's very useful. Do you usually have private keys as plain text rather than on a wallet?
However I do use their verify functionality quite often:
https://brainwallet.github.io/#verify
Hmm... Didn't know that Brainwallet.org supported this feature. Well yeah, that's pretty much exactly what I had in mind. I thought an offline way to do this would be a good idea since I assumed that the process was typically done via the command line which tends to freak newbies out.
Thanks a lot !
Here you go:
https://bitcointalksearch.org/topic/how-to-sign-a-message-990345