恺撒加密算法实现???
传说恺撒曾用过保密代码。英文字表26个明文字母最简单的加密形式就是用B代替A,C代替B……,这叫一轮恺撒密文;二轮密文用C代替A,D代替B…….
Mjqqt hfjxfw.Mtb nx dtzw hnvmjw?
Xyfd fbfd kwtr jmj Xjsfyi ytifd
上述密文请用n轮密文(n<10)对上述信息解密;设计算法实现。
问题点数:0、回复次数:2Top
1 楼casl(casl)回复于 2005-04-01 13:30:29 得分 0
public static String encode(String original, int offset)
{
// declare constants
final int ALPHABET_SIZE = 26; // used to wrap around A-Z
String encoded = ""; // base for string to return
char letter; // letter being processed
// convert message to upper case
original = original.toUpperCase();
// process each character of the message
for (int index = 0; index < original.length(); index++)
{
// get the letter and determine whether or not to
// add the cipher value
letter = original.charAt(index);
if (letter >='A' && letter <= 'Z')
{
// is A-Z, so add offset
// determine whether result will be out of A-Z range
if ((letter + offset) > 'Z') // need to wrap around to 'A'
letter = (char)(letter - ALPHABET_SIZE + offset);
else
if ((letter + offset) < 'A') // need to wrap around to 'Z'
letter = (char)(letter + ALPHABET_SIZE + offset);
else
letter = (char) (letter + offset);
}
// build encoded message string
encoded = encoded + letter;
}
return encoded;
}Top
2 楼jack286(jack286)回复于 2005-07-18 16:53:15 得分 0
gzTop




