• 号称是不可破解的一次一密


    尴尬虽然看上去是一次一密,但是可以用一定的分析方法破解,比如每个字符^0~255在找合适的含义~~,下面代码的意义我估计在于,当我们构架n层加密体系的时候始终有可变层存在,比如这里的key可当作私钥,之类的~~,不过在现实应用中发现(char)character这会产生空字符,如果在内存中没啥,但保存下来就可能会丢失,所以如果可能换成16进制的数据可好嘿嘿。

    using System.Text;
    using System.Security.Cryptography;
    
    class OTP_XOR
    {
        static void Main(string[] args)
        {
            Console.Write("Enter plaintext: ");
            StringBuilder plaintext = 
                new StringBuilder(Console.ReadLine());
            
            RandomNumberGenerator rng = 
                new RNGCryptoServiceProvider();
            byte[] key = new Byte[plaintext.ToString().Length];
            
    
            //--下面这里我修改了下,首先保证非0数据出现其次保证和原始数据相同咯- -看过原文的不要误会哈~~
            rng.GetNonZeroBytes(key);
            
             StringBuilder ciphertext = 
                EncryptDecrypt(plaintext, key);
            Console.WriteLine("ciphertext: {0}", 
                ciphertext);
    
            StringBuilder recoveredplaintext = 
                EncryptDecrypt(ciphertext, key);
            Console.WriteLine("recovered plaintext: {0}",
                recoveredplaintext);
    
            Console.Read();
        }
        
        /**//// <summary>
        /// 加密函数-可以反复用-这个函数的幽默点就在--^这里由于[原始数据^随机加密数据^随机加密数据=原始数据]
        /// </summary>
        /// <param name="data_in"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        static StringBuilder EncryptDecrypt(
            StringBuilder data_in, 
            byte [] key)
        {
            StringBuilder data_oput = 
                new StringBuilder(data_in.ToString());
            for (int index=0; index<data_in.Length; index++)
            {
                int character = 
                    ((int)data_in[index] ^ key[index]);
                data_oput[index] = (char)character;
            }
            return data_oput;
        }
    }
  • 相关阅读:
    ubuntu安装
    k8s 安装
    Blazor 路由
    ISO 8601
    Centos 8使用devstack快速安装openstack最新版
    使用devstack 一键安装 openstack详细过程和遇到的坑
    蓝瑟66000公里保养
    释放rsyslog占用的Linux内存
    Netty4.1 Http开发入门(一)服务端
    网络传输中的帧和payload
  • 原文地址:https://www.cnblogs.com/angellapples/p/3333958.html
Copyright © 2020-2023  润新知