一个简单的凯撒加密技术

一个简单的凯撒加密技术

什么是凯撒加密?

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
为什么使用它?
Just for fun!!!

什么人使用它?

  • Male Coder?
  • Formale Coder?
  • Someone interesting ?

怎么用?

许多方法,可以直接Google下。我这里用JavaScript方法来完成

第一步:打开Google游览器

右键点击空白页面,出现东西
点击最下边的检查:
把代码复制到本地文档,然后修改62行input里的内容就ok了。
把我的代码复制到左边红色箭头的位置,然后按下Enter

下面是加密的代码

// 定义我们的 log 函数
var log = console.log.bind(console)
var find = function(s1, s2) {
    var index = -1
    for (var i = 0; i < s1.length; i++) {
        var n = s1[i]
        if (n == s2) {
            index = i
            break
        }
    }
    return index
}
// 加密
var jiaMi = function(s, shift) {
    var lower = 'abcdefghijklmnopqrstuvwxyz'
    var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    var sum = lower + upper
    var result = ''
    for (var i = 0; i < s.length; i++) {
        var n = s[i]
        var index = find(sum, n)
        if (index == -1) {
            result += n
        } else {
            var len = sum.length
            var newIndex = (index + shift) % len
            result = result + sum[newIndex]
        }
    }
    return result
}
// 这是你想加密的东西,记得把他们放在一对单引号里边
// 你直接改单引号里边的话就行
var input = 'sometimes I want to chat with you, but I have no reason to chat with you'
// 这是加密后的结果,后边的那个60你可以换成任意的数字
var jiaMiResult = jiaMi(input, 60)
// 下面是展示加密后和解密后的例子
log('你说的话', input)
log('加密后的话', jiaMiResult)


解密的代码

// 定义我们的 log 函数
var log = console.log.bind(console)
var find = function(s1, s2) {
    var index = -1
    for (var i = 0; i < s1.length; i++) {
        var n = s1[i]
        if (n == s2) {
            index = i
            break
        }
    }
    return index
}
// 解密
var jieMi = function(s, shift) {
    var lower = 'abcdefghijklmnopqrstuvwxyz'
    var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    var sum = lower + upper
    var result = ''
    for (var i = 0; i < s.length; i++) {
        var n = s[i]
        var index = find(sum, n)
        if (index == -1) {
            result += n
        } else {
            var len = sum.length
            var newIndex = (len + index - shift) % len
            result = result + sum[newIndex]
        }
    }
    return result
}
// 这是你收到的加密后的话
// 你直接改单引号里边的话就行
// 小心:中间不能有空格
var input = 'AwumBqumA Q EivB Bw kpiB EqBp GwC, jCB Q piDm vw zmiAwv Bw kpiB EqBp GwC'
// 解密后的话
// 解密里的60必须和加密方的数字一致,记得解密前询问对方数字是多少
var jiemiResult = jieMi(input, 60)
log('加密后的话', input)
log('解密已经加密的话', jiemiResult)

你可能感兴趣的:(一个简单的凯撒加密技术)