简单的加密解密

加密算法 —— 有哪些容易入门且实用的算法? 对于初学者来说,一些相对容易入门且实用的加密算法如下:1. Caesar Cipher(凯撒密码):- 凯撒密码是最简单的替换式加密算法之一,通过将字母按照固定位数向前或向后偏移来进行加密。尽管在现代安全场景下并不足够安全,但它是非常基础且易于理解的加密示例。2. Vigenère Cipher(维吉尼亚密码):- 维吉尼亚密码是对凯撒密码的一种扩展,引入了周期密钥的概念,增加了加密的复杂性,相较于单纯的凯撒密码更难破解,适合作为初学者理解多表替换加密的基础。 阅读详情

数据加密一种最简单的加密方式是异或运算加密,可以用来简单的数据传输加密和文件,字符串等加密。

数学运算符为XOR(exclusive OR),在计算机中通常用"^"的符号表示(在英文模式下,按住shift键+键盘上方的数字6)
在二进制中:
1 ^ 0=1
0 ^ 1=1
1 ^ 1=0
0 ^ 0=0
可以看出若两个数相同取0,不同取1。
例:
运算11001 ^ 01011=10010
用其他进制表示的数做异或运算时,则应先将他们化为二进制的数,再做运算。(不足的位在前边填0补齐)
例:
计算6 ^ 3 = 110^011 = 101
异或运算具有可逆性。
即:若a ^ b = c,则有b ^ c = a (a,b,c分别表示0或1)
利用前面的异或运算规则,我们就其中之一分析:
1 ^ 0=1 则 0 ^ 1 = 1
原理:根据异或的运算规则,相同为0,不同为1;
这里引用自: https://www.cnblogs.com/albertblues/p/5670528.html

下面的脚本可以对字符串进行简单加密,这里注意编码:ISO-8859-1(0x00-0xFF)。这里需要单字符编码,如果用ASCII(0x00-0x7F)可能出现数据丢失。

using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

public static class CChangeStr  {
    static byte jied(byte c)
    {
        return (byte)(((c ^ 175) - 66) ^ 216);
    }
    static byte jiad(byte c)
    {
        return (byte)(((c ^ 216) + 66) ^ 175);
    }

    public static string jja(string str)
    {
        byte[] msg = Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        int i;
        for (i = 0; i < msg.Length; i++)
        {
            msg[i] = (byte)jiad((byte)msg[i]);
        }
        string outStr = Encoding.GetEncoding("ISO-8859-1").GetString(msg);
        return outStr;
    }

    public static string jje(string str)
    {
        byte[] msg = Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        int i;
        for (i = 0; i < msg.Length; i++)
        {
            msg[i] = (byte)jied((byte)msg[i]);
        }
        string outStr = Encoding.GetEncoding("ISO-8859-1").GetString(msg);
        return outStr;
    }
    
}


如果是中文的话,上面的GetEncoding(“ISO-8859-1”)得到的会被截断掉的数据,所以先转化成UTF8,再转换字符串,然后再次编码成ISO-8859-1,解码反着来一遍。这样就能加密所有的字符了。

public static string jja(string str)
    {
        //先取UTF8
        byte[] msg = Encoding.GetEncoding("UTF-8").GetBytes(str);
        //把UTF8转换成88591(中文的也就分解成了8859)
        str = Encoding.GetEncoding("ISO-8859-1").GetString(msg);
        //再把88591进行加密
        msg = Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        int i;
        for (i = 0; i < msg.Length; i++)
        {
            msg[i] = (byte)jiad((byte)msg[i]);
        }
        //把加密后的88591转换成字符串
        string outStr = Encoding.GetEncoding("ISO-8859-1").GetString(msg);
        return outStr;
    }

    //解密就是相反的过程
    public static string jje(string str)
    {
        //先把加密的字符串解码
        byte[] msg = Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        int i;
        for (i = 0; i < msg.Length; i++)
        {
            msg[i] = (byte)jied((byte)msg[i]);
        }
        //得到的是88591转码格式的
        string outStr = Encoding.GetEncoding("ISO-8859-1").GetString(msg);
        //需要再次解码成UTF8
        msg = Encoding.GetEncoding("ISO-8859-1").GetBytes(outStr);
        outStr = Encoding.GetEncoding("UTF-8").GetString(msg);
        return outStr;
    }
史上最全常见的加解密实现方式 阅读详情

相关推荐

几种简单常用的加密方式

有几种常见的加密方式和实现.

加密入门-对称密码简介(Java实现)

一、手写简单加密算法(凯撒密码) 首先,我们需要知道几个基本概念: 明文:原始信息。 密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。 密文:对明文进行变换的结果。 加密算法:以密钥为参数,对明文进行多种置换和转换的规则和步骤,变换结果为密文。 解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。 1. 凯撒密码介绍 ​ 凯撒密码作为一种最为古老的加密技术...

z_cqupt的博客 2264

别再问“这游戏啥引擎做的”了,手把手教你用SteamDB一键查询(附实战案例)

本文详细介绍了如何使用SteamDB一键查询游戏引擎信息,包括Unity 3D、Unreal Engine等热门引擎的识别方法。通过实战案例和高级查询技巧,帮助玩家快速获取游戏技术底细,优化游戏体验和兼容性分析。

weixin_31412781的博客 831

简单加密

题目描述 信息时代最怕的就是个人信息泄密。你现在已经掌握了一些编程技能,那么就尝试着对信息进行简单的加密吧!现在给定任意两个字符,要求对它们进行加密。规则是:用原字符后的第3个字符来代替。如需要将信息“Hi”加密,H后面第3个字符是K,i后面第3个字符是l,因此“Hi”加密后为“Kl”。 输入要求 从键盘输入任意两个字符。输入时两个字符间没有空格。保证输入的字符范围为a~w或A~W 输出要求 按上述规则进行译码后输出。输出时两个字符间没有空格,输出完毕后换行。 输入样例 Hi 输

唐攀的博客 2411

IBM x3650M4服务器更换主板后,导入原有硬盘阵列信息

x3650m4服务器主板坏了,更换好的主板,需要导入原来硬盘的里面的阵列信息 1、开机有提示信息,按C导入配置 2、按Y继续 3、点击start进入阵列卡配置 4、选择configurations 1,点击preview 5、预览硬盘的阵列信息,点击import导入 6、导入成功,可以查看到阵列信息 7、重启服务器,进入操作系统 如果重启找不到操作系统,重启按f12,手动选择从onboard sas controller启动,进入系统一次后面重启就会自动找到并引导系统了。 8、有时候导入阵列

zds00virtue的博客 2万+

pwm电机调速的原理介绍与代码实现

1、pwm实现调速的原理与介绍 PWM(Pulse Width Modulation)脉冲宽度调制。 1)占空比 pwm占空比就是一个脉冲周期内有效电平在整个周期所占的比例。 通过调节PWM的占空比就能调节IO口上电压的持续性变化,因此也能够控制外设的功率进行持续性变化,也就能控制直流电机的转速快慢。 那么重点就在于如何调节PWM波形的输出。如下图所示 图中的ARR是我们给定时器的一个预装载值,CCRx的上下变化是产生PWM波的关键。我们假设ARR大于CCRx的部分输出为高电平(即t1-t2、t3-t4

Clichong 7万+

几种常用的加密方式简单介绍

1 Base64加密方式(可逆) Base64中的可打印字符包括字母A-Z/a-z/数组0-9/ 加号’+’斜杠’/’ 这样共有62个字符 Base64 ios7之后加入系统库   2 MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 是计算机广泛使用的杂凑算法之一(又译摘

代码猫 1万+

FinRL实战:5步搞定股票量化交易策略(附Python代码)

本文详细介绍了如何使用FinRL框架,通过5个步骤构建基于深度强化学习的股票量化交易策略。内容涵盖从环境搭建、数据获取与预处理,到交易环境构建、模型训练(如PPO算法),以及策略回测评估与优化的完整流程,并提供了可运行的Python代码示例,帮助读者快速入门AI驱动的量化交易。

weixin_29062865的博客 630

简单的文本加密解密

简单的文本加密解密加密模块解密模块 加密模块 准备一个文本文件(非二进制),其中包含ASCII码的字符和中文字符。 设计一个方法 public static void encodeFile(File encodingFile, File encodedFile); 在这个方法中把encodingFile的内容进行加密,然后保存到encodedFile文件中。 加密算法: 数字: 如果不是9的数...

清宵尚温的博客 5597

ovs实现lb负载均衡

负载均衡器的实现原理是通过硬件或软件设备将客户端访问流量根据转发策略分发到多个服务器或设备上,以确保系统的负载均衡。二层负载均衡‌:使用虚拟MAC地址方式,根据OSI模型的二层进行负载均衡。‌四层负载均衡‌:基于IP+端口的负载均衡,主要分析IP层及TCP/UDP层,实现四层负载均衡。‌七层负载均衡‌:从应用层开始,根据虚拟的URL或IP、主机名接收请求,再转向相应的处理服务器。

bobi的博客 956

Windows下Maven环境变量配置避坑指南:解决‘mvn‘不被识别问题

本文详细解析了Windows系统中配置Maven环境变量时常见的'mvn'不被识别问题,特别是当系统提示“无法将‘mvn’项识别为cmdlet、函数、脚本文件或可运行程序的名称”时的解决方案。文章从问题根源入手,提供了清晰的配置步骤、深入的排查方法以及针对PowerShell的特殊处理,旨在帮助开发者彻底解决环境变量配置难题,确保Maven命令正常使用。

weixin_28826961的博客 390

简单加密解密接口

简单加密解密更新时间:2022-06-30 14:36:32接口状态:正常返回加密 或者解密结果请求地址 HTTPGET/POSThttps://www.maitanbang.com/api/jmjm/index请求参数请求结果参数说明

up2021的博客 8251

打脸来的太快了,又发现一个Trae的宝藏功能--内置浏览器可以指定机型来显示前端界面

今天给大家分享一个Trae的实用功能,就是SOLO模式下内置浏览器可以指定不同的手机、平板机型来查看前端页面显示效果,我感觉这个功能很棒,忍不住就跟大家分享一下。

cpp加油站的专栏 6567

python代码加密解密_python实现简单加密解密机制

本文使用python实现一个简单的加密解密机制。描述:结合26个字母、以一个单词作为秘钥,使用python实现简单的加密解密机制秘钥:大写的英文字符串明文:包含空格、大小写字母、数字等的字符串代码实现:# -*- coding: utf-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import stringdef suanf...

weixin_39691968的博客 454

AUTOSAR 3万字面试题全面解析(持续更新)

ECU抽象层(EAL)是AUTOSAR架构中的一部分,它位于微控制器抽象层(MCAL)之下,但通常与MCAL一起被提及。EAL的目标是提供一个统一的接口来访问和管理ECU(Electronic Control Unit,电子控制单元)的硬件资源,包括处理器、存储器和外围设备。通过这种抽象,EAL使得上层软件能够以一种标准化的方式与ECU硬件交互,而不需要关心具体的硬件实现细节。EAL解决了硬件异构性带来的问题,即不同ECU可能采用不同类型的处理器和硬件配置。

大模型大数据攻城狮的专栏 5613

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何用WPF制作简单的加密解密

本文介绍加密解密如何使用,简单版本, 主要加密解密有 AESHelper DESHelper等

2403_88923953的博客 830

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

一个简单的java 加密解密方法

以下是一个使用 Java 实现的简单加密解密工具类,支持 AES 对称加密算法。这个实现包含基本的加密解密功能,并处理了密钥生成、Base64 编码等常见需求。这个工具类可以作为基础,根据实际需求进行扩展,例如添加更多加密算法支持、添加初始化向量(IV)支持等。

小屁孩大帅-保密的博客 434

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# 简单的加密解密方法

C# 简单的加密解密方法 两个方法如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace...

u010833391的博客 1515

C# 下简单的进行加密解密问题

<br />今天用到了C# 下的文本加密解密问题,从网上找了很多素材都不合适 MD5原来是不可逆的加密,所以用了一个相对来说比较简单的加密方法,既可以加密也可以解密 记录一下以后方便大家使用<br /> using System.Security.Cryptography; <br /> //加密 <br /> public static String JiaMi(String str) <br /> { <br /> String encryptKey = "Oyea"; <br /> DESC

pridescc的专栏 967

PHP 简单的加密解密算法

<?php /** * * @创建时间:2015-3-12 下午2:07:33 * @作者:YuMing * @描述:异或加密解密类 */ class Yihuo extends CI_Controller { //加密秘钥 public $key0 = '123456'; function __construct() { ...

DA6328的博客 212

简单加密解密程序-

做一个简单的短电文加密解密程序。短电文要求最长80个字符,电文允许出现键盘可以键入的任何英文字母。字符加密可以采用替代法,如:a->c,b->d,...,y->a,z->b,即字母变成其后的第2个字母。 提示: 注意字母包括大写字母和小写字母 #include <iostream> #include <iomanip> using namespace std; #include<stdio.h> #include<math.h> .

YYY_0612的博客 1287

JavaScript实现简单的加密解密

JavaScript实现对内容的加密和解密。加密,转成编码。解密则是编码转字符串。

让优秀成为一种习惯 1919

php 简单加密解密函数,PHP简单加密解密函数

function url_base64_encode($string) {$data = base64_encode($string);$data = str_replace(array('+','/','='),array('-','_',''),$data);return $data;}function url_base64_decode($string) {$data = str_repla...

weixin_31755771的博客 327

简单加密解密

简单加密解密:(要加密的是一个int型的值),不知道这样代码有没有破绽 加密原理:先将要加密的数字乘于一个数值, 将得到的值 每一位转换成对应的英文字母 例{0,1,2,3,4,5,6,7,8,9} 对应固定的十个字母 {a,d,f,h,y,T,v,H,T,z} 将要乘的值和乘后的位数保存在前三位 加密后的值即为乘数,位数乘后的值,随即的值连接成 保证加密后的值为一个固定的长度。 ...

liqian_0616的专栏 208

Java实现一个简单的加密解密方法

Crypto是Java语言写的一个简单的加密解密方法。 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass); 解密方法 Enande.decrypt(ciphertext, pass); content,pass均为String类型 content为明文...

weixin_34044273的博客 794
上一篇: 判断是否过了一周和一些常用时间计算
下一篇: unity反向椭圆遮罩shader
Thinbug
博客等级 码龄22年 2万+粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thinbug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值