美文网首页
凯撒加密

凯撒加密

作者: 没头脑很不高兴 | 来源:发表于2018-01-05 11:56 被阅读0次

准备工作

一、

    s1 s2 都是 string
    但 s2 的长度是 1
    返回 s2 在 s1 中的下标, 从 0 开始, 如果不存在则返回 -1

实现方法:

function find(s1, s2) {
  let index = -1
  for(let i = 0;i < s1.length;i++){
    if(s2 === s1[i]){
      index = i
    }
  }
  return index
}

二、给一段全是小写字母的字符串,将其返回为全是大写的形式,这里需要上面的find函数,因为上面已经提供,这里就不写了,剩余的代码如下

let lower = 'abcdefghijklmnopqrstuvwxyz'
let upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
function upperCase(s){
  let s1 = s
  let s2 = ''
  for(let i = 0;i < s.length;i ++){
    let index = find(lower, s[i])
    s2 += upper[index]
  }
  return s2
}
console.log(upperCase('bkasdjkfbaksldj'))  // BKASDJKFBAKSLDJ

三、给一段全是大写字母的字符串,将其返回为全是小写的形式
这些代码仍然是在上面的基础上添加的

function lowerCase(s){
  let s1 = s
  let s2 = ''
  for(let i = 0;i < s.length;i ++){
    let index = find(upper, s[i])
    s2 += lower[index]
  }
  return s2
}
console.log(lowerCase('FABSDAJHDBCFB'))  // fabsdajhdbcfb

四、实现JavaScript自带的toUpperCase的功能(正确地处理任意的字符)

function upperCase1(s){
  let s1 = s
  let s2 = ''
  for(let i = 0;i < s1.length;i ++){
    if(find(lower,s1[i]) > -1){
        let temp = upperCase(s1[i])
        s2 += temp
      } else{
        s2 += s1[i]
      }
  }
  return s2
}
console.log(upperCase1('bB1asdfbB34'))  // BB1ASDFBB34

五、实现JavaScript自带的toLowerCase的功能(正确地处理任意的字符)

function lowerCase1(s){
  let s1 = s
  let s2 = ''
  for(let i = 0;i < s1.length;i ++){
    if(find(upper,s1[i]) > -1){
        let temp = lowerCase(s1[i])
        s2 += temp
      } else{
        s2 += s1[i]
      }
  }
  return s2
}
console.log(lowerCase1('GYGUVG123VGVUYHhhj'))  // gyguvg123vgvuyhhhj

实现凯撒加密一位

凯撒加密是指将一串字符串的英文字母部分整体偏移 n 位的加密方法,例如可以将 qqq 整体向右偏移一位 变成 rrr

// 这是对单个字符偏移 n 位的函数
function shiftedChar(char, n) {
    var lower = 'abcdefghijklmnopqrstuvwxyz'
    var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    var index = find(upper, char)
    if (index > -1) {
        var newIndex = (index + n + 26) % 26
        log('upper char', index, char)
        return upper[newIndex]
    } else {
        index = find(lower, char)
        if (index > -1) {
            var newIndex = (index + n + 26) % 26
            log('lower char', index, char)
            return lower[newIndex]
        } else {
            return char
        }
    }
}
// 这是对任意长的字符串实现偏移一位的函数
function encode1(s) {
    var result = ''
    for (var i = 0; i < s.length; i++) {
        var c1 = s[i]
        var c2 = shiftedChar(c1, 1)
        log('encode', c1, c2)
        result += c2
    }
    return result
}

相关文章

  • python密码学编程

    1.反转加密法 反转加密法是很弱的一种加密方式,就是通过反向输出消息进行加密。 2.凯撒加密法 凯撒加密法稍微复杂...

  • 凯撒加密

    准备工作 一、 实现方法: 二、给一段全是小写字母的字符串,将其返回为全是大写的形式,这里需要上面的find函数,...

  • 一个简单的凯撒加密技术

    一个简单的凯撒加密技术 什么是凯撒加密? 在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、...

  • 凯撒密码

    凯撒密码最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。这是一种位移加密方式,只...

  • 凯撒加密算法(最简单的对称加密)

    凯撒算法 概述 凯撒密码是罗马扩张时期朱利斯• 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作...

  • 1.1 对称&不对称加密

    【一 直观感受下加密这件大事】 1 凯撒密码:对军事命令进行加密,确保信息被拦截后,对方也无法解读。凯撒密码的加...

  • 凯撒加密解密

    学习到一个简单的加密算法,用Kotlin实现一下:

  • 凯撒加密法

    凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的...

  • 图解密码技术学习-第二章 历史上的密码

    凯撒密码 原理 凯撒密码的实现方式就是对字母进行平移,加密向右平移的话,解密就向左平移 凯撒密码的算法就是平移,密...

  • 凯撒密码脚本

    凯撒密码的加密解密 前言 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过...

网友评论

      本文标题:凯撒加密

      本文链接:https://www.haomeiwen.com/subject/kowjnxtx.html