字符串加密算法
题目:某公司数据库密码规定为7位字符组成的字符串,存储之前,需要将其加密,加密算法为:依次将每个字符的ASCII码乘以2再加上10,若计算到的新字符值大于120,则继续将其除以3,否则不进行除法运算。最后将得到的新字符串倒序。
package com.likunjie; import java.util.Scanner; public class Encrypt { public static void main(String[] args) { System.out.print("请输入一个需要加密的字符串:"); Scanner scan = new Scanner(System.in); String input = scan.next(); char[] inputArr = input.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < inputArr.length; i++) {//将各个字符加密 int charInt = Integer.valueOf(inputArr[i]); int charIntEn = charInt * 2 + 10; if (charIntEn > 120) { sb.append((char) (charIntEn / 3)); } else { sb.append((char) (charIntEn)); } } System.out.println("未倒序加密后内容:" + sb.toString()); for (int begin = 0, end = sb.length() - 1; begin < sb.length() / 2; begin++,end--) {//倒序算法 char temp; temp = sb.charAt(begin); sb.setCharAt(begin, sb.charAt(end)); sb.setCharAt(end, temp); } System.out.println("最终加密后内容为:" + sb.toString()); } }
输出结果:
请输入一个需要加密的字符串:qwlekrjaslkdf
未倒序加密后内容:NRKFJOJDPKJFG
最终加密后内容为:GFJKPDJOJFKRN