换一种方式做加密

ios Epub加密及解密阅读的一种实现方式 非常感谢大家利用自己宝贵的时间来阅读我的文章 ,  最近做了一个用到Epub阅读的项目,下面跟大家分享一下开发心得,希望能给你的开发过程带来一些帮助。喜欢的可以关注一下我的简书、我的博客    关于epub阅读器,我是在github上找了个叫XDSReader的开源阅读器做了些修改,研究了一下他的源码,修改了些BUG,包括笔记的删除,书签章节名称错乱,首页点击第一章崩溃等小问题,具体都是在什么地方... 阅读详情
 

什么是扭曲加密变换呢?这是我开发的一款软件,可能官方的名词叫做“混淆加密”,我给自己的软件起名叫做扭曲加密变换技术。我断断续续用了一年多的时间开发这款软件,但是没做什么推广,这款软件直到现在不对外公开的。

现在加密变换适用于VC6、VS2005、VS2008等这么几个平台,下面我给大家讲一下在这个软件的开发过程中的一些思考,以及我的一些解决方案。

一、加密软件现状

当前常用的加密软件可以分为:

  • 加壳类,比如ASProtect;
  • 虚拟机类,比如VMProtect。

对 于加壳类,壳总是壳,它与它要保护的内容总是有明显的分界线。尽管现在的加壳软件总是尽可能地加强壳与核的联系,但壳总是能脱掉的。当初我开发了一款跟踪 调制器,可以对付这一类的加壳软件,因为一般来说,加壳软件的壳在一个新的段里面,就是原来的PE程序有数据段、代码段,壳比较难以做到和原来的程序处在 同一个段,通常会在新的段里面,这就是它的分界线。所以在调试一个加过壳的软件的时候,运行到从一个段到另外一个段的时候的跳转时就停下来,这个时候原来 程序的入口点就找到了,这也是加壳软件的弱点,就是难以和原来的程序严丝无缝地合并在一起。

那么当我们找到它的入口点之后,用一条命令DumpPE,把当前的内存映象存为一个文件。然后,我又加了一个命令MakePE,用这个命令,把这个映象重 组一下,于是这个程序就脱壳了。当时在Win98时代,那个时候的壳也比较简单,我的TRW2000真的好用,三个命令就脱掉壳了。

后来,加壳者发现这样不行。他们一般来说还会提供一些很难跟踪,很难调试的函数,推荐加壳者,推荐开发者,调用一下你的函数,我再用加壳,这样的程序就不能简单用以上的方法。不过能够调用的函数通常也是比较简单的。

我们要破解一个软件的时候,我们首先第一步要做的通常是把一个软件脱壳,脱壳成了破解的第一步,也成了所有破解者的基本功。破解者说,谁不会脱壳啊?如果他不会脱壳的话,就没法搞破解。所以说脱壳成了破解的基本功,大家先要把壳脱了,然后分析它。

但 是如果我们要逆向一个程序,我们不是要破解它,我们想把这个程序整个的变成源文件,整个我要搞懂它,这个时候其实反倒简单了。怎么说呢,我根本不需要脱这 个壳,我只需要把程序运行起来,把内存映象保存下来,就可以分析了。我根本不需要脱壳,至于你在程序中调用的加壳软件提供的API函数多半是不重要的,可 以不管它。通常来说,加壳软件对于逆向是没有什么保护作用的。

另外一个虚拟机类的加密,它需要用户选择一个或几个函数进行加密,它只能保护几个重点函数,不能保护你的整个软件不被逆向。它通常把几行代码,通过虚拟机 膨胀之后,变成几百行,甚至是更高。所以呢,虚拟机类的加密软件,他们通常只能让你加密你代码中的几个函数,或者是函数中的一部分,会推荐你在编程序的时 候,前面加一个标志,这段是用虚拟机加密的。这就决定了用虚拟机类加密,通常只能加密少量代码,而你的软件的绝大多数代码都会暴露的,这显然是不安全的。

并且我们看VMProtect的说明书,它明确说明它是为了保护你的注册机制,它并不能保护你的软件设计思路。

总之,现有的加密软件只能防破解,不能防逆向。

二、逆向的可怕

根据经验,如果努力一点,一人一天可以逆1000行C++代码,我有多年的软件逆向的工作经验,经常干这种事情,并且我最近一段时间,还开了一个逆向的培 训班,教学生学习一些逆向的知识。直到上个月,我还刚刚完成了一个六万行C++代码的工程。根据经验,如果努力一点,一个人一天可以逆1000行C++代 码!也就是说你辛辛苦苦几年时间开发出来的软件,如果不加保护,可能会以每人每天1000行的速度被逆向全部代码,这是多么可怕的一件事情。尤其是驱动。 我们知道,驱动是最富技术含量的,驱动开发是最难的,能够做驱动开发的人,都是顶尖高手,都是薪水很高的人。而恰恰驱动呢,却是软件保护中一个问题最严重 的地方。我们可以看到,我们的系统里面的那些驱动程序,个个很短小。就是说我们可能花费了很大的精力,很长的时间开发出来一个驱动,包括了我们软件的所有 核心技术,但是它可能只有几十KB。被一个有经验的逆向者,可能几天时间逆向出全部源码。

这个也不妨告诉大家,我最近在做的软件,叫WinMount。这个软件的思想是合并了WinRAR和Daemon Tools两个软件的功能,就是我可以把一个压缩包展开,也可以把一个虚拟光驱文件展开,这样一下子把两款电脑的必备软件合并在一起了。我又增加了自己的 思想,你有一个包,我把这个包直接虚拟成不存在的一个盘,把它放到虚拟的盘里去,这是我的思想。所以我现在正在做的这个软件,就是即时解压的这么一个思 想,这是我现在主要搞的软件。

我要给大家说什么呢,即使是一个优秀的程序员,有一个想法,就这么凭空能把程序编出来吗?很困难的。一般我们都要参考一下别的软件,参考一下它们的思路。 我当时有这个想法,有这个思想做这个软件做WinMount,又参考了一个类似的软件才做出来的。当然,那个软件的功能和这个软件的功能是完全不相同的, 那个软件有一个子功能,可以虚拟出一个盘出来,我一看这个软件不错,我要把这个功能发扬光大,做成当时心目中的工程,于是我把那个软件逆向了一下,把里面 所需要的内容拿出来了。

所以说被破解不可怕,可怕的是被逆向。如果你的软件被逆向了,就会冒出多个与你的软件功能相同的软件,你所有的技术就都不存在了。

三、加密产品如何切入?

如果我们要开发一款加密产品,怎么做?

刚才我们把传统的加密软件都推翻了,我们说加壳的也不行,虚拟机的也不行,我们首先要考虑第一个问题,我们要用什么作为我们加密的输入。比方说我们可以考 虑,如果我用C++源码作为输入,搞得很难懂怎么样?这个辛苦点,因为你源码搞得再混乱,编译器会优化的,所以这一步是行不通的。所以说呢,多数程序就选 择了用最终的执行文件EXE作为输入,现在的加壳软件和虚拟机都用了这个方法,我很通俗的把他们所用的方法,加壳的软件叫做包粽子,EXE已经存在在那里 了,你想保护他,你包一层就可以了吗?虚拟机叫做挖窟窿。比如一个房子建好了,这个房子已经建好了,不是正在建,你感觉住着不牢靠,我把这两块砖敲下来, 换成石头的,这个就是安全的吗?所以我们认为他们的方式都是不合适的。在实际分析当中,也是有问题的。比如说函数占用的空间是2KB,通常虚拟机类软件, 把这2KB,填一些随机代码,这个函数的前面一个函数他不敢动,后面一个函数他也不敢动,这就是一个窟窿,一个优秀的分析者,他肯定能识别出这个窟窿,然 后我还没分析这个函数,已经知道这个函数有多大了,在加密的战争中你已经失败了。

分析了以上两种可能,我们感觉它那种方法不好,所以我想出来一个方法,就是用编译中间文件OBJ作为加密的输入。我后来没有了解,是不是到目前为止,只有 我一款软件用这个方法的,反正我是自己独立想出来的,我感觉这个方法很好。优点是什么?就是我加密的代码是无缝连接到工程中的。再一个就是我们分析OBJ 的格式,比起C++的源码会简单得多。属于我的OBJ文件中有一个符号,这个OBJ会告诉我这儿有一个符号。所以我认为反汇编OBJ比反汇编EXE是安全 的。

具体做法是,把OBJ文件解析,保留数据部分不变,反编译代码部分,然后扭曲变换成难读懂的代码,然后输出一个ASM,再调用ASM编译器生成新的OBJ文件,再LINK为最终目标文件。

如果你想这个代码安全,就不应该大段大段地使用那些容易透露你信息的数据,你可以把这些数据掩盖起来,或者用代码计算出来。

因为扭曲加密变换是采用OBJ作为输入。大家知道,库文件LIB实际上是多个OBJ文件的集合,这样我们可以把LIB中的OBJ逐个加密,再用LIB工具替换回去,使用这样的库编译我们的项目更安全。

我们分析一个程序,总是要先搞懂一些技术的库函数,找到printf、CString.Format、fopen等关键函数,这些基本函数找到了,理解一个软件就不难了,反之,如果连这些基本函数都找不到,或搞不懂,则分析工作无从下手。

四、遇到的问题

C++编译生成的OBJ,并不总是能从ASM编译得到,比如COMMON段,比如WEAK Symbol等,暂时使用改符号名的方法,把符号改为symbol-name-weak,编译为OBJ后再patch回来,把符号名改一下,编译完之后再 替换回来,这算是一个解决方案。

五、变形的思考

虚拟机变形,很强大,很复杂,这也是它的缺点。它的变换并不神秘,并不可怕。你也可以构思一个虚拟机,可以大胆地构思,假如说我有一个CPU是8位的,那 么这时候当你遇到一条32位的一条指令的时候,要想用你8位的CPU实现这个代码,就不得不编一长串的程序,完成32位下的一条指令。

它的倍率很高,但倍率不可调。我的选择,用多种低倍率的变换,迭代使用,这样倍率可随意调整,强度一点也不差。最重要的,我可以全文件低倍加密,重点部分高倍加密。

实际上要让代码难懂,并不需要那么麻烦。不就是要把代码扭曲吗?不就是要把代码混淆吗?难道非用虚拟机不可吗?我的意思是我们并不一定非要用虚拟机,我认 为虚拟机变换不过是精心设计的一套变换,不过是一套变换,一套规律,尽管这套规律非常复杂,但是你毕竟是一套规律,我只要有精力去学习,我肯定还是能搞懂 的。我认为与其我们用一套复杂的规律去对代码做加密变换,倒不如我们用多套简单的变换来做同样的事情。

用轻量的变换,然后再对少数参数做重点的变化,这是我的思想。

所以如果说有人给我一个软件,说它是加壳的,我肯定说这个没问题,有办法解决它。如果有人给我一个软件,用虚拟机加密的,我也会说这个没问题,因为多数函 数是明码,只有极少数是加密的。我把90%以上的函数都搞懂了,剩下的几个函数尽管是用虚拟机加密的,我知道入口点在哪里,我知道入口参数是什么,甚至我 也可以把它当成一个黑箱,看看它返回什么东西,这时候我已经搞懂了。

但是如果有人给我一个用我说的方法加密的软件,每一个函数都加了密,每一个简单函数都需要费很大精力才能搞得懂,我会说这个东西没办法做了,这是我的思路。

在实际的软件分析过程中,如果你看见一个高手在分析一个软件,过程是什么样子的呢?是一步一步去理解这个软件。先是找一些最简单的函数,把它搞懂,比如这 个函数是打开一个文件,这个函数是什么,肯定是先从这些最简单的函数着手,然后在这个过程当中,这个分析者逐步地增强信心,他的思路逐渐明确,他越来越有 信心,这个软件最后被搞定了。但是如果按照我的思路的话,他是不断地受到打击,他是举步维艰,就像我上面说的,如果他分析了一天,分析出一个函数,发现是 两个数相加,他会气坏了,不干了。

我们具体要做加密,我的做法是基本上是以函数为单位进行加密变换,我首先会对这个函数进行堆栈分析,就是我要知道它那些技术变量是怎么实现的,有一些冷僻 的汇编代码,汇编指令是无法识别的。下一步进行标志分析,也就是标志寄存器。如果我们每一步加密变换,都小心翼翼不敢去破坏这个标志的话,太受约束了,这 个变化就不会丰富多彩了。我们用高级语言,用C++写出来的代码,绝大多数是不依赖于标志寄存器的。

实际上,这里使用的加密变换,不过是一个由简入繁的过程,应该说,每个人都可以编出自己的一套变换,不过碰巧这是我写出来的变换罢了。这里的每一个变换都 不可怕,可怕的是我这种变换是可以迭代的。我起名字很简单,叫变换一、变换二、变换三,来了一个软件,准备加密他,来个一二一吧,先做一变换,再做二变 换,再做一变换,变换之后这个代码就非常可怕了。

可以想像,只要我们这套将引擎开发完成了,要想增加新的变形方法,简直是易如反掌。我们可以召集几个程序员开会,限定你们十分钟之内,给我想两个加密变 换。这个没有问题,由繁入简是唯一的,但是由简入繁方法太多了,经过一番复杂的运算,最后逆过来。所以说这个变换可以充分发挥我们的想像力。比方说你可以 让你的EAX总是对真正的EAX取个反。

经过以上几步变换,代码已经很难懂,但还是顺序的。再加一个变换,就是用JMP指令打乱。这时候已经分不出我这个函数从哪里开始,到哪里结束。你找不到call,好不容易找到一个,结果是假的。这时候分析者连一个函数都找不到了。

有人说,你为什么不一条指令一跳呢?我觉得一条指令一跳代码的膨胀量太大了,2K的代码非要变成2MB,我希望我们的变换在前面的一二一里面有技术含量,用跳转太没有技术含量了,我每三五条跳转一下也就够了。

最后一步叫做缠绕。以上用JMP打乱还只是本函数内部打乱,如果把多个函数缠到一起,就无法从内存区域划分一个个函数。

通过以上多种变换方案的组合、迭代,我们可以自由选择控制加密深度,一个100KB的软件,我们可以加密为200KB,2MB,甚至200MB,而且没有垃圾代码,这200MB代码都是有用的,如果要理解它,就都要分析,海量的代码使分析变为不可能。

我现在开发出来这一套扭曲加密变换之后,没有公开,也没有做大量的广告,只给很少的几个朋友说了说,并且有好多人有意跟我联系说,把这个东西卖给我吧。我 说不卖,第一个我认为一套加密软件,如果用户能够买到,能够下载,实际上已经不安全了。比方说最著名的那些加密产品都是有价钱的,当你分析一个软件,是用 这个虚拟机加密的,先买一套,然后我们看到是怎么加密的,先给它一个最简单的函数,看看怎么变换,跟踪一下,再加两行,看看怎么搞一下。也就是说破解者可 以用这种方法测试你的虚拟机加密软件的加密行为,那么这时候你这个加密实际上已经是不安全了,这是一个。就是说软件不卖,大家都拿不到,这时候我认为我的 加密是安全的,你没办法说,我拿一个小函数让它变换一下试一试,做不到,这是一个,这是一点,就是说你能够买到加密软件,它就是不安全的。比方说我们经常 需要打狗,一套软件是用加密狗加密的,破解者会买一个和你一模一样的狗,阅读一下这个狗的使用手册,提供了哪些调用函数,怎么调的,他学会使用了,他解你 的狗也就不难了。所以我认为加密软件是不能卖的。

再有一个,我认为我的这个扭曲加密变换,比他们的加密软件都牛。为什么这么说呢?因为刚才我们已经把他们的加密软件全部推翻了,加壳的也不行,虚拟机的也 不行。但如果用我这套东西加密的话,真正使破解者没办法分析了。并且我这个东西非常好用,你只要用VC编一个工程,然后把代码全过一遍,膨胀一下,再认 可,到时候就没法分析了。我有一个担心就是,万一我这个软件要是散布出去的话,市场上所有的我们用到的程序都变成用我这个东西膨胀的,那我们这帮高手不就 没饭吃了吗?

六、会不会影响效率?

一个软件中绝大多数代码,实际上都是只运行一遍,或者很少一遍的,你把一个软件整个加密两三倍,是不会影响效率的,针对现在快速的CPU来说,这点损失不 算什么,少数重点函数可以不加密,也可以的。当你一个函数,几兆的软件,只有两三个函数没有加密,破解者找都找不到这两个函数,效率不是问题。

七、用扭曲变换加密就安全了吗?

没有绝对的安全,只能说,这种加密方案,更方便全面保护你的软件,使逆向和破解都更难,经过扭曲变换加密的软件,对破解者和逆向者来说,更吓人,更累人。

 

本文主要内容整理自著名程序员刘涛涛先生在2008中国软件安全峰会(www.sinoit.org.cn)上的演讲。

对称加密原理 - 一种古老的加密方式 阅读详情

相关推荐

前端加密方式详解与选择指南

本文解析前端加密方式及选择策略。介绍了 HTTPS 加密、JavaScript 加密库(CryptoJS、jsencrypt)、Base64 编码和自定义加密算法等前端加密方式。从项目安全需求、性能要求、开发成本与可维护性、兼容性等方面阐述如何选择加密方式,并分享了电商平台、企业级应用和社交平台的实际加密案例及代码,为前端数据安全提供指南。

weimengen的博客 2100

QQ空间登录表单密码客户端加密代码

QQ空间通过网页登陆的时候,提交表单后会发现密码栏发生了变化。 点击登录按钮后,密码先在客户端进行了MD5等一系列加密。这样可以防止客户端向服务器发送登录信息时密码被窃听。 值得我们在写登录界面时借鉴。 我把相关的js代码都抓出来了,希望对大家有用。 var chrsz=8;var mode=32;var hexcase=1;function Get

Bug 无处不在! 3752

《全连接到卷积神经网络:图像识别的演变历程》

这篇文章会从传统全连接层面临的困境说起,揭示卷积神经网络(CNN)成为图像识别核心动力的原因,探究其背后蕴含的设计思想与技术创新。但是回顾历史,CNN的出现提醒我们:技术的突破往往是由对自然规律的模仿和重新构建得来的。也许,当机器真的学会“像人一样看世界”的时候,它们的“眼睛”早就超过生物视觉的限制了。例如,用5×5的核处理224×224的输入时,只要25个参数(而不是全连接那种百万级的)。* 局部性:网络的底层只需留意局部的地方(像边缘、纹理这样的地方),不用管那些全局像素之间复杂的关系。

2401_82434295的博客 675

一种客户端即时通信数据的加密和解密方法

一种客户端即时通信数据的加密和解密方法  摘要 本发明适用于即时通信领域,提供了一种客户端即时通信数据的加密和解密方法,所述方法包括以下步骤:A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传给服务器;B.服务器利用随机产生的,用于统一加密不同客户端上传的数据加密密钥的一个全局变量,加密保存所述数据加密密钥,并将加密后的数据加密密钥返回客户端;C.客户端保存服务器返回的加密后的

yidaizongshi579的博客 5983

雷电模拟器+Python 3.11:手把手教你用Frida-dexdump给安卓APK脱壳(附GDA查壳)

本文详细介绍了如何使用雷电模拟器和Python 3.11配合Frida-dexdump工具进行安卓APK脱壳的全流程。从环境配置、工具安装到脱壳操作和问题排查,提供了包含30+关键截图的保姆级教程,适合零基础用户快速上手。重点讲解了Frida工具链的使用技巧和GDA查壳方法,帮助读者掌握移动应用安全分析的基础技能。

weixin_42568801的博客 329

centos7搭建LNMP环境-编译安装&yum安装-超详细

文章目录1. 首先了解编译安装和yum安装的区别。2. yum安装准备工作---切换阿里云yum源3. 编译安装lnmp4.yum安装lnmp5. lnmp一键安装6. 一些报错7. 笔记8. 参考文章 1. 首先了解编译安装和yum安装的区别。 windows下安装centos虚拟机,之前写过。传送门~~ 编译安装: 可以按需安装,想安在哪个目录下就安在哪个目录下。 可以设定参数 可安装自己想要的版本 yum安装: 安装的方便快捷 不需要考虑包的依赖 可以直接使用service nginx st

最美不过下雨天 9349

换一种方式做加密—著名程序员刘涛涛谈扭曲加密变换技术

换一种方式做加密—著名程序员刘涛涛谈扭曲加密变换技术 作者:刘涛涛 发布时间:2009-10-26 5:37:19 什么是扭曲加密变换呢?这是我开发的一款软件,可能官方的名词叫做“混淆加密”,我给自己的软件起名叫做扭曲加密变换技术。我断断续续用了一年多的时间开发这款软件,但是

Jingle的专栏 2069

HybridCLR热更新全流程实操:用Addressables实现资源+代码双热更(Unity 2021版)

本文详细介绍了在Unity 2021 LTS版本中,如何结合HybridCLR代码热更新与Addressables资源管理系统,实现资源与代码的双热更解决方案。通过环境配置、技术架构设计、实战案例和性能优化,帮助开发者解决中大型项目中的依赖管理和版本协同问题,提升游戏迭代效率。

cc789的博客 848

换一种方式做加密——著名程序员刘涛涛谈扭曲加密变换技术

什么是扭曲加密变换呢?这是我开发的一款软件,可能官方的名词叫做“混淆加密”,我给自己的软件起名叫做扭曲加密变换技术。我断断续续用了一年多的时间开发这款软件,但是没做什么推广,这款软件直到现在不对外公开的。 现在加密变换适用于VC6、VS2005、VS2008等这么几个平台,下面我给大家讲一下在这个软件的开发过程中的一些思考,以及我的一些解决方案...

weixin_33743248的博客 294

FPGA实现16x16点阵汉字滚动显示:Verilog代码与Quartus仿真详解

本文详细介绍了如何使用FPGA实现16x16点阵汉字滚动显示,包括Verilog代码设计、Quartus仿真及硬件连接技巧。通过字模数据存储和扫描控制逻辑,实现汉字的动态显示效果,并提供了优化建议和常见问题解决方案,适合FPGA开发者和硬件爱好者学习参考。

weixin_29172963的博客 354

2022年灌溉试验设计与数据分析考试试题

2.表2数据为表层0~10cm的原状土离心机土壤水分特征曲线试验数据,(1)请利用R语言nls函数通过Van Genuchten方程对土壤体积含水率和土壤基质势进行拟合;(3)指明土壤基值势为-33 kPa和-1500kPa时的体积含水率。1.请根据表1数据,以灌溉模式为主区,生物炭用量为子区,利用R语言agricolae包生成裂区试验设计试验处理布置图;3.以R工具包factoextra中decathlon2数据集前10列为数据进行PCA分析,要求计算出(1)前5个主成分的特征值、特征向量;

Mrrunsen的博客 266

前端加密的方式汇总

随着信息和数据安全重要性的日益凸显,如何保证信息数据在传输的过程中的安全成为开发者重点关注的内容。前端加密通常是指在浏览器中对各种传输的数据进行各种加密操作。然而前端加密更多的是用来对传输的数据进行简单的混淆,为了确保数据在传输过程中不被轻易的篡改和读取。可供我们选择的加密方式有很多种,需要我们在开发过程中根据实际的场景选择适合自己的加密解决方案。那么,本文将结合应用场景来介绍一下前端开发中常用的加密方法。

任磊 6146

大模型对齐的核心引擎:RLHF三阶段完整技术体系详解——从InstructGPT到ChatGPT与Claude 4.6的工程实践

RLHF从InstructGPT起步,经由ChatGPT、Claude系列的工程实践,已演变为现代大语言模型不可或缺的对齐基础设施。其三阶段流程——SFT构建基础能力基线,奖励模型将人类偏好编码为可微信号,PPO以KL约束驱动策略向偏好分布优化——构成了当代对齐技术的核心骨架。OpenAI的路线侧重于以海量人工标注和多目标奖励建模持续精细化RLHF流程,在规模与工程深度上持续推进;

nmdbbzcl的博客 1073

通过加密的方式做身份鉴权—Demo设计

目录鉴权方式账号+密码账号+短信验证码第三方渠道鉴权——微信Reference 本文只是一个Demo设计,仅供学习思路,并不能用于真实的线上业务,因为有很多漏洞。 一般线上应用都需要对用户身份进行鉴权,通过身份校验的用户,都会得到一个access_token,这个凭证是全局唯一接口调用凭据,调用应用的各接口时都需使用access_token,如果token校验失败,则表明无权限访问相关接口...

weixin_35219046的博客 198

Jetson Nano 实战指南:深度学习环境配置与 YOLOv5 边缘端部署解析

Jetson Nano是NVIDIA推出的嵌入式AI开发板,凭借其强大的GPU计算能力和完善的软件生态系统,成为边缘AI部署的理想平台。本教程源于作者团队参加2024中国机器人大赛暨RoboCup机器人世界杯中国赛机器人先进视觉3D识别赛道的实战经验,是一份经过验证的环境部署指南。

FJN110的博客 152

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

前端加密的几种方式

1.base64加解密方式及其原理 这里假设需要加密的字符串是beijing 其中第四步的base64参照表如下所示 由以上加解密过程可知: (1)最终加密后的字符数一定是3的倍数。 (2)只包括65种字符,大写的A至Z,小写的a至z,数字0到9,以及3种符号+/ =,=最多两个且在末尾。 验证如下: 2.MD5加密(不可逆) MD5.js是通过前台js加密的方式对用户敏感信息进行加密的处理一种工具,可以理解为插件。 提取MD5.js文件的路径和地址:MD5.JS 提取码:wyh1 一共有六种加密方

陈厚伯的博客 9671

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ssl证书加密方式有哪些?

SSL证书是HTTP明文协议书升级HTTPS加密协议必需的ca证书。ssl证书主要是通过https加密方式实现网站及用户的安全性。那么,你可知道ssl证书加密方式有哪些?一起来看看。 ssl证书加密方式有哪些 ssl证书加密方式1.Base64位数据加密(可加密解密) 非常简单的加密算法,没有密匙,这类方法要是让他人得到你的保密,就能够立即破译,只有用于蒙蔽,一般状况下不独立应用,由于确实并没什么用处~能够和别的加密算法混和起来,做为一层外界包装。 ssl证书加密方式2.MD5数据加密(数据加密

蔚可云的博客 4964

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

检测php加密方式,一种php加密方式

functionRandAbc($length=""){//返回随机字符串$str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";returnstr_shuffle($str);}$filename='dam.php';$T_k1=RandAbc();//随机密匙1$T_k2=RandAbc();//随机密匙2$vstr=file...

weixin_34094282的博客 511

js常见的加密方式

加密

ckzuishuai的博客 1万+

一文打尽PHP代码加密方式

原文地址 温馨提示:世界上没有破不了的密码,如果有那也只是时间问题。 我们能做的只是增加破解时间。如果这个破解时间大于一个人的寿命,那么这个加密方式肯定是成功的。 对于加密的程序,就像破解者需要了解、猜测编写者的思路一样,编写者也需要去了解破解者的方法、手段。这样才能写出破解难度更高的程序。 壳”加密” 这一类“加密”包括: 无扩展加密:phpjiami、zhaoyuanma的免费版本等 有扩展的加密:php-beast、php_screw、screw_plus、ZoeeyGuard、tonyenc等市面

@日月空@的博客 1万+

数据加密存储常见的加密方式

数据加密存储五种常见的加密方式先总结下:数据加密存储五种常见的加密方式:数据加密存储方式一、MD5加密(加密不可逆)。数据加密存储方式二、Base64位加密(可加密也可解密)。数据加密存储方式三、sha1加密(加密不可逆)。数据加密存储方式四、RSA加密(公钥加密,私钥解密)。数据加密存储方式五、AES加密(需要密钥才能解密)下面详细说下数据加密存储常见的加密方式。

qq_44005305的博客 2655

C++ 一种数据加密和解密方式实现

文章通过随机数及异或运算加密和解密的实现

mounmory的博客 3821

密码加密方式

SpringSecurity提供了实现PasswordEncoder接口的密码加密工具类:BcryptPasswordEncoder,该类基于Bcrypt强哈希算法来加密密码,更加安全;Bcrypt强哈希方法每次加密相同的明文得到的密文结果都不一样,这样即使数据库泄露,黑客也很难破解密码;1)Bcrypt加密一般在注册用户时,Bcrypt使用SHA-256加密算法+随机盐值+秘钥(明文密码)进行加密处理,得到的密文存入数据库中;@Test} else {生成加密的代码。

m0_62943934的博客 3865

前端安全加密方式

HTTPS 是基础,必须强制启用。对称加密(AES)+ 动态密钥管理。前端哈希 + 后端加盐哈希双重防护。非对称加密安全传输对称密钥。防 XSS、防 CSRF、密钥安全是核心。前端加密需结合场景选择算法(如 AES 加密、RSA 密钥交换、SHA 哈希),并通过 HTTPS 和安全实践(如防 XSS、CSRF)构建防护体系。同时,避免过度依赖前端加密,关键数据需后端二次验证。

wl_qianduan的博客 4632

常用的加密方式有哪些

常用的加密方式有哪些

weixin_69323488的博客 5423
上一篇: .NET对PE结构的扩展
下一篇: 混淆字符串
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值