加密算法入门

加密算法分为:对称加密和非对称加密算法

加密算法:凯撒加密,DES,AES。app

非对称加密。函数

消息摘要:md5,sha1,sha256加密

数字签名:SHA256withRSAspa

 

package cn.cas

/**
 * 阿斯克码
 */
fun main(args: Array<String>) {
    //获取字符串
    val c:Char='a'
    //转换十进制
    val value:Int=c.toInt()
   // print(value)
    val str="I love you"
    val array=str.toCharArray()
    var bu=StringBuffer()
    for(ch in array){
        val result=ch.toInt()
        bu.append(result.toString()+" ")

    }//73 32 108 111 118 101 32 121 111 117
    print(bu.toString())//转换10进制

}
package cn.cas

class CaesarCrypt{
    /**
     * 解密算法
     * @param command 加密源
     * @param key 加密秘钥
     */
    fun decrypt(command:String,key:Int):String{
        var charArray= command.toCharArray()
        //高阶函数
        return  with(StringBuffer()){
            charArray.forEach {
                //移动字符
                val c=it
                //获取支付ascii
                var ascii = c.toInt()

                ascii -=key
                //转换成字符
                val result= ascii.toChar()
                append(result)//B
            }
            toString()
        }
    }
          /**
         * 加密算法
         * @param command 加密源
         * @param key 加密秘钥
         */
        fun encrypt(command:String,key:Int):String {
              var charArray = command.toCharArray()
              //高阶函数
              return with(StringBuffer()) {
                  charArray.forEach {
                      //移动字符
                      val c = it
                      //获取支付ascii
                      var ascii = c.toInt()

                      ascii += key
                      //转换成字符
                      val result = ascii.toChar()
                      append(result)//B
                  }
                  toString()
              }


          }
}
/**
 * 凯撒密码
 */
fun main(args: Array<String>) {
    //命令 加密
    var command="I love you"
    //秘钥
    var key=1
//加密
    println(CaesarCrypt().encrypt(command,key))
    //加密后
    var a=CaesarCrypt().encrypt(command,key)
   //解密
    println(CaesarCrypt().decrypt(a,key))
}

 凯撒密码破解:频度分析法:code

英文字母是e出现频率很高blog

1.统计密文出现次数最多的字符md5

2.咱们认为每一个字符都是由e变来的ci

3.经过码表返推加密次数字符串

4.生成多个备份文件,哪一个解析后能读懂就是破解后的文件了

package cn.cas

fun main(args: Array<String>) {
    val ch:Char='A'
    //获取字符ascii
    var asill=ch.toInt()

    //转换二进制
   val binary= Integer.toBinaryString(asill)
    println(binary)//1000001 八位 一个英文字符占一个字符


}
相关文章
相关标签/搜索