首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

几个开源 RUST 安全算法库

从头编写算法不太现实,上网搜了一下,还好已经有一些 开源 RUST 安全算法库,基于现有的源代码实现更加可行。下面就介绍一下 RUST 加解密,并选择一个项目作为基础,实现国密算法。...Sodiumoxide 并不是纯 RUST 编写,而是 C 密码 libsodium 的 Rust 封装,而 libsodium 又是 fork C 密码NaCl 而来,因此 Sodiumoxide...的大多数文档来源于 NaCl 。...该项目被指出代码质量不好,并且缺少文档。 ---- 上述,Sodiumoxide、Rustls、rust-openssl 只是其他的封装,要增加国密支持,只能修改所封装的,不予考虑。...ring 则存在大量的汇编代码和 C 代码 ,不便于后期维护和开发,不太合适在上面进行开发。Dalek 实现的算法太少,很多常见加解密算法都没实现,放弃。

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发静态SDK指南: 搭建一个提高开发效率的静态工程、混淆带有bitcode sectname 的静态

4.3 选择需要暴露出来的.h文件,.m文件会自动编译到.a文件 4.4 动态framework暴露头文件 引言 原文 https://kunnan.blog.csdn.net/article...根据源代码的公开情况,可以分为2种类型:1、开源(公开源代码,能看到具体实现,比如SDWebImage、AFNetworking);2、闭源(不公开源代码,是经过编译后的二进制文件,看不到具体实现...【代码混淆】1、基于编译器混淆静态(StaticLib)2、字符串加密:使用clang-c接口 不需要源代码就可以进行混淆https://blog.csdn.net/z929118967/article...;.framework 本身已经包含了 .h 和 其它资源文件,可以直接使用 多文件处理:如果静态需要暴露出来的 .h 比较多,可以考虑创建一个主头文件(一般 主头文件 和 静态 同名)在主头文件包含所有其他需要暴露出来的....h 文件,使用静态时,只需要#import 主头文件 .framework为什么既是静态又是动态: 系统的 .framework 是动态,我们自己建立的 .framework 是静态 4.1

92920

从Native到Web(二), NaCl学习笔记: 技术限制&Win32移植过程

ncval 工具检查) (一些使用汇编优化的代码(如数学)可能不能使用) Pepper API 必须从主线程调用 (对于引擎的多线程架构有所冲击: IO, OpenGL, Input...)...ES (需要做一个渲染器) Pepper Thread 不能进行阻塞性的操作 (好多操作都要考虑重新实现, 或者转移到线程) 文件只能访问HTTP服务器或者本地Cache的 (限制了资源加载来源)...这些限制都是为了保证安全性(想想ActiveX为什么失败了)和跨平台(Win/Linux/OSX使用同一个版本) 从Win32到NaCl 参考nacl_sdk\vs_addin\examples\hello_nacl_cpp...\hello_nacl_cpp.sln 使用PPAPI平台编译运行(编译成Chrome DLL插件, 可以调用现有的Win32API, 保证了移植过程的平滑) 实现Native Client Framework...这里的实现比较有意思, 因为没有主线程的完全控制权, 使用了事件机制模拟主循环 // Implements Windows window message loop with a callback function

82120

程序员最恐怖的梦魇是什么?

我检查了一下代码,发现竟然回到了我改之前的样子!15个文件,混乱的格式,三个字母的变量。当初为什么不备份一下代码呢,真想射自己一枪。我再一次格式化它们,这次把代码放到三个文件,以不同的名字命名。...Day2 从磁盘的搜索没有得到什么结果,这说明这些乱码要么是被加密了,要么就是在lib的某个地方。但是我没有搜到,我决定搜索所有的文本文件,这次花的时间比昨天更长,第二天就这这样过去了。...字符串是加密的。我只好根据所有的头文件来一点一点查了。这会花费相当多的时间,我们同时还警告了学校,可能有人得到了Phelps博士计算机的root权限。...我打开#include文件,却没有发现代码。后来发现这些都被编译成一个文件了。也没什么关系,毕竟我们有源代码,大不了就重新编译所有的。...Days8-14 我学聪明了,他一定是修改了一些,我开始研究编译出来的汇编(虽然我之前根本就不懂汇编),从开始学习,到最后看懂汇编代码,花了六天。虽然根本发现什么异常,完全就是在浪费时间。

62240

MIT 6.858 计算机系统安全讲义 2014 秋季(二)

静态代码:无 JIT,无共享。 近期版本支持动态代码(请参考结尾的附加参考资料)。 从沙箱调用受信任的代码代码序列,过渡到/从位于[4KB…64KB)的沙箱。...(否则,模块可能会跳转到跳板代码的中间…) 受信任的代码首先切换到不同的堆栈:为什么NaCl 模块堆栈无法接收异常,并且由跳板调用的代码可能会出现异常。...但它可以通过 DOM 其他节点的位置推断出图片的大小。 CSS 也是如此。 JavaScript 如果您对 JS 进行跨源提取,是允许的,但框架不能查看源代码。...toString()方法,可以显示源代码,页面的主服务器始终可以直接获取源代码然后传递给页面!...设计固有的问题。 正确的实现会有这个问题。 为什么这么重要? 可以修复实现的错误。 要修复协议级错误,可能需要更改协议! 可能与现有系统不兼容。

20110

【GNULinux kernel源码分析】刨根问底,速览,对初学者友好的底层理解,让你对内核不再迷茫

源代码目录结构分析 2. linux内核模块编程入门 3. 如何编译内核模块 4. 源码在线阅读的网站 参考原文 2. 内核常用数据结构 3. TTY 4....源代码目录结构分析 1、Linux 内核源代码包括三个主要部分 1)内核核心代码:包括linux内核整体架构分析笔记描述的各子系统和子模块,以及其他支撑子系统,如:电源管理、linux初始化等。...2)非核心代码:例如文件(因为 Linux 内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、 KVM(虚拟机技术)等。...include/ :内核头文件,需要提供给外部模块(例如用户空间代码)使用。 kernel/ : Linux 内核的核心代码,包含了 进程调度子系统,以及和进程调度相关的模块。...内核常用数据结构 Linux 内核代码中广泛使用了数据结构和算法,其中最常用的两个是链表和红黑树。 linux内核源码分析笔记 3.

1.5K30

iOS开发你不知道的事-编译&链接

第一步预编译的过程相当于如下命令(-E 表示只进行预编译): $ gcc –E hello.c –o hello.i 还可以下面的表达 $ cpp hello.c > hello.i 预编译过程主要处理源代码文件以...保留所有的#pragma编译器指令 截图个大家看看效果 [1240] 经过预编译后的文件(.i文件)不包含任何宏定义,因为所有的宏已经被展开,并且包含的文件也已经插入到.i文件,所以当我们无法判断宏定义是否正确或头文件包含是否正确时...为什么要链接?...下面让我们来看看怎么样调用ld才可以产生一个能够正常运行的Hello World程序: 注意默认情况没有gcc / 记得 : $ brew install gcc 链接相应的 [1240] 下面在贴出我们的写出的源代码是如何变成目标代码的流程图...[1240] iOS的编译器 iOS现在为了达到更牛逼的速度和优化效果,采用了LLVM LLVM采用三相设计,前端Clang负责解析,验证和诊断输入代码的错误,然后将解析的代码转换为LLVM IR,

54900

通过一篇文章带你解决如何加密代码任然可以运行

VS使用小技巧 前言 在实际生活,作为程序员偶尔会因为资金不够用了选择去兼职写代码,当我们写完一个代码,将他发给某个公司的时候,我们经常会想到如何让目标公司看不见你写的源代码源代码是你好不容易想出来的...使用加密算法保护代码 如果您不想让别人看到您的代码,可以考虑使用加密算法保护您的代码。...您可以使用第三方加密软件或加密您的代码,然后将加密后的代码交给别人运行,但是这样做可能会有一些法律风险,因为加密代码可能会被视为反盗版技术。...我们可以直接把这个静态直接卖给他,并且将刚才书写的头文件一并打包,在头文件里书写这写函数的使用方法,便可做到让别人看不到你写的代码,却能够运行你的代码。...请注意,您还需要在代码包含头文件(通常在静态文件夹),以便使用的函数和类。

13010

是否忘记了向源添加“#include StdAfx.h”?

我的这个问题发生于我通过添加文件的方式,向MFC内添加现有的一大坨.h和.cpp文件。...这些.h和.cpp文件是属于标准C++的开源源代码范畴,与MFC无更深层次的关系。...但尝试如此修改,因为不想破坏源代码的标准性^_^ 2) 感慨一下VC在识别、编译这方面的迟滞-_-,或许是因为太强大了吧,就考虑周全,竟然还需要手动修改~ 3) 有点怀念Qt了…… 补充的资料: 出处...1、将相对稳定的头文件(比如CRT,STL,第三方固定的)全部写在stdafx.h。...四、Q&A Q、为什么不全部使用“自动生成预编译头文件”? A、“自动生成预编译头文件”和什么都不用没有什么两样,编译速度没有质的提高。

8K30

Android 源码目录结构详解

这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。...Android源代码的下载请参考官网 Android 2.1 |– Makefile |– bionic                        (bionic C) |– bootable...inet相关,具体作用不明) |   |– kernel                (Linux内核的一些头文件) |   |– netbsd                (?...一些私有的头文件) |   |– stdio                (stdio实现) |   |– stdlib                (stdlib实现) |   |– string...(源代码) |-- libstdc++                (libstdc++ C++实现) |   |-- include (头文件) |  – src                (

2.4K20

【Linux】动静态

对于学习C/C++的同学来说:听到最多的就是标准,其次就是库函数。但究竟什么是呢?为什么我们只需要添加一下头文件,就可以使用包含的函数了呢?别着急,通过本文,我们都会讲清楚。...那么,Linux下的在什么位置呢? 如上便是我们使用所要吧包含的所有的头文件。 接下来,我们回答几个问题: 问:1....答:安装编译器软件,安装要开发的语言配套的头文件。 问:2. 我们在使用编译器,都会有代码补全,但是都需要先包含头文件,这时为什么呢?...如果我们不想给别人源代码,我们给别人提供.o可重定位二进制文件,然后用代码进行链接就行。 未来,我们可以给别人提供.o(方法的实现).h(都有什么方法),别人就可以使用了。 但是,问题又出现了。...我们为什么可以在Linux下敲C语言代码呢?这是因为系统中有C语言所需的头文件文件。 交付:将形成的归档文件和匹配的头文件都传给别人。

7310

2015.5 技术雷达 | 工具篇

在其他语言中已经存在类似的程序,如Java的Hystrix,而Polly是.NET家族的一个很好补充。...Blackbox(github.com/StackExchange/blackbox)是一个用于加密源代码仓库特定文件的简单工具。如果你需要存储密码或者私钥的时候,这个工具特别实用。...NaCl (nacl.cr.yp.to) (读作‘Salt’)提供了关于加密,解密和数字签名的一系列的功能,使得实现安全的网络传输,或者满足其他密码学方面的需求变得简单。...尽管有一些其他的工具也能提供这些功能,NaCl承诺提供更快的速度和更简单易用的 API。当前支持 C 和 C++ 的,关于 Python 的封装正在进行。...同时,文字形式的表达方式还支持版本管理,并且可以和源代码存放在一起。 SoundCloud最近开源了一个Graphite的替代品:Prometheus(prometheus.io)。

1.2K50

探索编译的V8 JavaScript在恶意软件的应用

V8字节码是JavaScript代码优化过程的中间步骤。它使V8擎能够通过序列化和翻译更接近机器码的优化代码来高效地执行JavaScript。...虽然最初的设想是通过绕过初始解析步骤来提高性能,但开发人员(尤其是恶意软件开发者)可以利用该特性来隐藏应用程序的源代码。...在反序列化编译对象之前,V8擎将当前版本与存储在标头文件的版本进行比较。如果不匹配,解析过程将失败。...【图8:恶意软件的一些配置,包括C&C域和加密密钥】 勒索软件和擦除器(wiper) 在接受调查的文件,研究人员还发现了一些勒索软件。它的结构很简单,包括一系列读取、加密和写入操作。...【图10:来自GitHub的node-shellcode源代码】 结论 在安全专家和威胁参与者的持续战斗,恶意软件开发人员正不断创新攻击技巧来隐藏其足迹。

1310

鹅厂面试题|“你知道C++从源文件到可执行代码的过程吗?”

①预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。产生.ii文件。...预处理器(cpp) 的作用:提供了预处理命令 **预处理(cpp)的过程:**主要处理那些源代码文件只能够以“#”开始的预处理指令。...该阶段编译原理就是将头文件**#include** 的内容插入程序文本当中,得到了test.i文件。...4.链接阶段 当一个程序调用了标准的函数,例如printf、cout等,这个函数已经存在于一个已经单独预编译好了的.o文件,而这个文件必须以某种方式合并到我们的test.o当中,得到可执行的test...#include ,从标准寻找头文件。 #include"",先从当前目录开始寻找头文件, 找不到再从标准寻找头文件

91620

Android ROM 制作教程

一些私有的头文件) |   |– stdio           (stdio实现) |   |– stdlib          (stdlib实现) |   |– string          (...libstdc++           (libstdc++ C++实现) |   |– include        (头文件) |   `– src             (源代码) |– libthread_db...(写给小白:makefile即编译脚本文件,其内容配置了源代码文件夹、文件夹、编译命令以及编译选项等。 欲了解具体内容请百度或參考SUN出的makefile用户手冊。...(大家刷完机后用ES之类的看一下根文件夹下就会发现除了system.img的文件,还多了非常多其它在system镜像有的东西。)...这些问题的产生都是因为编译时无法使源代码和编译选项与HD2的硬件完美契合造成的。 当大神们重复尝试改动源代码、编译选项之后,才可能解决这个问题。

2.6K51

CMake基础

CMake基础 一、什么是编译器 编译器,是一个根据源代码生成机器码的程序 g++ main.cpp -o a.out 该命令会调用编译器程序g++,让他读取main.cpp的字符串(称为源码),并根据...操作系统会读取刚刚生成的可执行文件,从而执行其中编译成机器码,调用系统提供的printf函数,并在终端显示出Hello, world 二、多文件编译与链接 单文件编译虽然方便,但也有如下缺点: 1.所有的代码都堆在一起...: 其中静态相当于直接把代码插入到生成的可执行文件,会导致体积变大,同样的对文件进行编译,但生成的可执行文件,不依赖文件即可运行 而动态则只在生成的可执行文件中生成“插桩”函数(汇编语言中的jump...其实我们只需要定义 hellolib 的头文件搜索路径,引用他的可执行文件 CMake 会自动添加这个路径 这里用了 ....4.Tencent/rapidjson - 单纯的 JSON ,甚至依赖 STL(可定制性高,工程美学经典) 5.ericniebler/range-v3 - C++20 ranges 就是受到他启发

1.9K20
领券