按照每个参数字母A-Z的顺序生成密钥

比如: abc acb bca bac = abc acb bac bca

    public static String getSign(SortedMap<String,String> map) {

        StringBuffer sb = new StringBuffer();

        Set<Map.Entry<String, String>> entries = map.entrySet();
        Iterator<Map.Entry<String, String>> iterator = entries.iterator();
        List<String> values = new ArrayList();

        while(iterator.hasNext()){
            Map.Entry entry = (Map.Entry) iterator.next();
            String k = String.valueOf(entry.getKey());
            String v = String.valueOf(entry.getValue());
            if (StringUtils.isNotEmpty(v) && entry.getValue() !=null && !"sign".equals(k)) {
                values.add(k + "=" + v);
            }
        }

        String sign = StringUtils.join(values,"&");

        sb.append(sign)
                .append(signKey);

        return MD5.crypt(sb.toString()).toLowerCase();

    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个凯撒密码加密程序的示例代码: ```python def caesar_cipher(text, k): result = "" for char in text: # 如果是小写字母,对其进行替换 if char.islower(): result += chr((ord(char) - ord('a') + k) % 26 + ord('a')) # 如果是大写字母,对其进行替换 elif char.isupper(): result += chr((ord(char) - ord('A') + k) % 26 + ord('A')) # 如果不是字母,直接加入结果中 else: result += char return result # 测试程序 text = input("请输入明文:") k = int(input("请输入密钥k:")) cipher_text = caesar_cipher(text, k) print("加密后的密文为:", cipher_text) ``` 这个程序接收用户输入的明文和密钥k,对明文中的小写字母和大写字母进行凯撒密码加密,其中小写字母的替换范围是a-z,大写字母的替换范围是A-Z。加密后的密文将输出到屏幕上。 ### 回答2: 凯撒密码是一种简单的加密方法,它利用字母表中每个字母后面的k个字母进行替换来进行加密。在这种加密方法中,字母表可能会被循环使用,因此z后面的下一个字母不是a而是b。 要编写一个凯撒密码加密程序,需要接收两个输入:待加密的文本和密钥k。在这个程序中,我们需要对输入的文本中的每个字母进行替换,并将替换后的结果输出为加密后的文本。 首先,我们需要定义一个字母表,包含所有a到z的字母。然后,我们需要定义一个加密函数,根据密钥k来实现字母的替换。 加密函数的具体实现方法是,对于输入的每个字母,我们需要将其转换为ASCII码,然后将其加上密钥k。如果加上k后的ASCII码超出了字母表中字母的范围,我们需要将其归位到字母表中,并将其转换为相应的字母。替换后的字母将构成加密文本。 下面是一个凯撒密码加密程序的简单实现: ```python import string # 定义字母表 alphabet = string.ascii_lowercase # 定义加密函数 def caesar_encrypt(text, key): # 初始化加密文本 encrypted_text = "" # 对文本中的每个字符进行加密 for char in text: # 如果是小写字母,则进行加密 if char.isalpha() and char.islower(): # 计算加密后的字符 encrypted_char = chr(((ord(char) - 97 + key) % 26) + 97) # 将加密后的字符添加到加密文本中 encrypted_text += encrypted_char else: # 如果不是小写字母,则直接添加到加密文本中 encrypted_text += char return encrypted_text # 测试加密函数 text = input("请输入待加密的文本:") key = int(input("请输入加密密钥:")) encrypted_text = caesar_encrypt(text, key) print("加密后的文本:", encrypted_text) ``` 在这个程序中,我们首先定义了字母表,然后定义了加密函数`caesar_encrypt`。这个函数接收两个输入:待加密的文本和加密密钥。在函数中,我们对文本中的每个字符进行判断,如果是小写字母,则进行加密;如果不是小写字母,则直接添加到加密文本中。 加密过程中,我们首先将每个字符转换为其ASCII码,然后将其加上密钥k,最后将其还原为相应的字母并添加到加密文本中。如果加密后的字符超出了字母表的范围,则需要将其归位到字母表中,这个过程使用了取模运算。 在这个程序中,我们使用了Python的字符串函数`isalpha`和`islower`来判断字符是否是小写字母。函数`chr`将ASCII码转换为字符,函数`ord`将字符转换为ASCII码。 测试程序时,我们需要输入待加密的文本和加密密钥。程序将输出加密后的文本。如果输入的文本中包含非小写字母的字符,这些字符将原样输出。 ### 回答3: 凯撒密码是一种古老的加密方法,它使用一个固定的数字k来将明文中的字母移动k个位置,生成密文。为了编写一个凯撒密码加密程序,我们可以按照以下步骤进行: 1. 创建一个接受用户输入的函数,包括明文、密钥k 我们需要一个函数来接受用户输入,并在接收输入后开始执行加密程序。在这里,我们需要使用Python来接受用户输入,我们通过使用input()函数和变量来记录输入的文本和密钥k。 2. 创建一个函数来加密明文 我们需要一个加密函数来将输入的明文加密。在这个函数中,我们需要使用ASCII码表将字母转换为数字,并使用密钥k将它们移动到正确的位置上。为此,我们需要使用Python内置的ord()和chr()函数。 3. 将加密后的结果返回给用户 我们需要将加密后的结果输出给用户。这可以通过使用Python的print()函数完成。 下面是一个实现凯撒密码加密的Python程序: def caesar_cipher(text, k): result = "" # 遍历输入文本中的所有字符 for i in range(len(text)): char = text[i] # 如果字符是小写字母,使用ASCII码表将它转换为数字 if char.islower(): num = ord(char) - 97 # 将数字进行移位 num = (num + k) % 26 # 将数字转换回字母,并将加密的结果添加到结果字符串中 result += chr(num + 97) # 如果字符是大写字母,执行类似的操作 elif char.isupper(): num = ord(char) - 65 num = (num + k) % 26 result += chr(num + 65) # 如果字符不是字母,则直接将它添加到结果字符串中 else: result += char return result # 从用户那里获取输入文本和密钥k text = input("请输入要加密的文本: ") k = int(input("请输入密钥k的值: ")) # 执行加密程序,并输出结果 print("加密后的结果为:", caesar_cipher(text, k)) 在这个程序中,我们使用了一个for循环来遍历输入文本中的每个字符。对于每个字符,我们首先使用islower()和isupper()函数来判断它是否是小写字母或大写字母。如果是,我们使用ord()函数将它转换为数字,并进行移位和转换,然后将加密后的结果添加到结果字符串中。如果不是字母,则直接将它添加到结果字符串中。最后,我们将加密后的结果返回给用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值