文档章节

码云存储库加密工具

Force武装卫队
 Force武装卫队
发布于 2017/08/03 16:45
字数 1113
阅读 460
收藏 13

安全的隐忧

对于很多开发者而言,代码既是资产,于是一小部分开发者身怀巨富,将代码放置在代码托管平台上时,显得‘惴惴不安’,唯恐平台泄密或者平台人员窥探到这些财富。

git,svn,hg 几乎所有的版本控制工具都不会将用户的文件通过特定的方法加密,版本控制系统存储的都是文件快照或者文件的差异变更。(版本控制工具是个好同志,尊重事实)

这样一来,远程服务器或者中央服务器上的数据相对于能接触到这些数据的人来说也就是透明的。 实际上也是如此,几乎所有的代码托管平台上的管理员可以看到你的远程存储库或者中央存储库。当然平台的管理员都有严格的规范限制这种数据泄密行为,对于绝大多数开发者而言,在这方面是无需担心的。

郑重说一句:码云有非常健全的安全机制,来保障大家的私密项目是安全可靠的。

对于安全级别非常高的企业来说,他们往往会自己搭建私有化版本控制系统,而不是使用公有云上的代码托管平台。

代码上的财富并不一定能支撑私有化的高额费用,如何消除这些人的隐忧呢?简单的方案是在这些用户将代码推送到服务器前将其加密。git-secure 的目的正是如此。

这有一个简单的解决方案

距离老板提出存储库加密的需求已经过去两周,git-secure 经过测试已经能在 Windows, Linux,macOS 上运行正常。

git-secure 是一组工具,用户在使用 git-secure 创建 commit 时会自动的将修改的文件使用 AES-256 加密,然后提交推送到远程服务器上。远程服务器上有更新时,使用 git-secure pull 即可,用户还可以使用 git-secure 克隆远程服务器上已经被 AES 256 加密的存储库。

项目地址 git-secure

如何使用

安装依赖

git-secure 需要安装 git 工具,在 Windows 系统,不一定需要将 git 添加到环境变量中,git-secure 将自动搜索 git 安装目录。

由于 git-secure 是使用 Powershell 脚本编写,用户在使用前应当安装 Powershell 6.0(Windows 系统需要 5.0 支持),Powershell 6.0 是一个跨平台脚本工具,支持 Windows,Linux, macOS ,下载地址为 https://github.com/PowerShell/PowerShell/releases

bash <(wget -O - https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/install-powershell.sh)

安装

git-secure 非常容易使用, 用户可以去码云主页下载安装包: git-secure/releases,值得注意,Windows 平台的用户在使用 git-secure 安装包时,应当勾选添加 git-secure 安装目录到环境变量,这样可以省去用户输入命令时的麻烦。

输入图片说明

使用

git-secure 项目主页,有一些基本操作的命令,实际上和 git 相关命令一致。

Git Secure utilies 1.0
Usage: git-secure cmd args
       add         add file contents to the index
       clone       clone a encrypted repository
       config      config your secure repository
       commit      create a commit
       diff        show commit changes between commit worktree
       init        initialize a secure repository
       key         create a aes key
       pull        Fetch from and integrate with another repository or a local branch
       push        Update remote refs along with associated objects
       remote      set remote for secure repositroy
       status      Show the working tree status
       help        print help message

使用例子截图:

输入图片说明

这是如何做到的

git-secure 是一个简单的存储库加密方案,因此,内部实现应当非常简单。git-secure 使用双存储库机制,用户可见的存储库是一个临时的存储库,主要的功能是提供 diff,add 等功能,git-secure commit 时将先提交到临时存储库中,然后比较临时存储库的 commit id 与 记录的前次 commit id 比较,然后将修改的文件加密输入到隐藏的存储库 .git/secure 中,然后在隐藏的存储库中创建提交,成功后刷新记录文件。

git-secure 是开源工具,因此有兴趣的人士可以通过源码了解 git-secure。同时也非常欢迎用户提交 PR。

最后

Powershell 是个好伙计,希望大家喜欢它,git-secure 也是个好伙计,希望大家喜欢它。

最后 项目地址 git-secure

© 著作权归作者所有

共有 人打赏支持
Force武装卫队

Force武装卫队

粉丝 180
博文 38
码字总数 73999
作品 3
深圳
高级程序员
加载中

评论(7)

Force武装卫队
Force武装卫队

引用来自“非知名隐退女尤”的评论

CMD才是个好家伙。Powershell 不过是他的变种。哼哼。
Powershell 并不是 cmd 的变种。
金拱门
金拱门
CMD才是个好家伙。Powershell 不过是他的变种。哼哼。
Force武装卫队
Force武装卫队

引用来自“降龙罗汉”的评论

博文,效率好高,两周!!!:+1:
主要是杂七杂八的事情,跨平台测试等耗时了。
一路南漂
一路南漂
给力,大神出山所向披靡!
降龙罗汉
降龙罗汉
博文,效率好高,两周!!!:+1:
lgl48128244
lgl48128244
这广告猝不及防
C_酱
C_酱
OSChina 技术周刊第二十三期 —— 每周技术精粹

每周技术抢先看,总有你想要的! 移动开发 【软件】Android 调试工具 Stetho 前端开发 【翻译】25 个超棒的 HTML5 & JavaScript 游戏引擎开发库 【翻译】什么时候 AngularJS 会超越 jQuery 【...

OSC编辑部
2015/03/02
0
0
【码云周刊第 44 期】有哪些实用且堪称神器的 Chrome 插件

chrome 的简洁快速以及丰富的插件种类使得它在国内日益盛行,帮助了我们很多 chrome 用户提升了工作效率,而今天小编要给大家推荐9款实用甚至堪称神器的 chrome 插件,希望对提升大家的工作效...

码云Gitee
2017/10/27
0
29
polo_helcly/自动化测试执行管理节点

自动化测试执行管理节点 项目介绍 一套涵盖了接口、web端UI、安卓端UI、IOS端UI及PC端UI等自动化框架技术的全栈式自动化测试用例管理及测试开发工具。 软件架构 软件架构说明 安装教程 1.使用...

polo_helcly
08/13
0
0
OSChina 技术周刊第二十九期 —— HTTP 有时候比 HTTPS 好?

每周技术抢先看,总有你想要的! 移动开发 【软件】iOS 图表控件 ios-charts 【软件】跨平台应用开发框架 Bridge.NET 【博客】为什么不能往 Android 的 Application 对象里存储数据 【博客】...

OSC编辑部
2015/04/12
0
0
OSChina 技术周刊第二十二期 —— DUBBO 配置规则详解

每周技术抢先看,总有你想要的! 移动开发 【翻译】为你的 Android 应用增加本地搜索功能 前端开发 【软件】AngularJS 的剪贴板扩展 ngClip 【软件】国际化和本地化 JavaScript 库 Globaliz...

OSC编辑部
2015/02/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

GO 数组相关操作

package mainimport("fmt""math/rand""time")func main() {//数组的几种定义方式var arr1 [3]int = [3]int{1,2,3}var arr2 = [3]int{4,5,6}arr3 := [3]string{"h", "w", ......

汤汤圆圆
26分钟前
1
0
JAVA 中interrupt、interrupted和isInterrupted的区别

首先,我们说明下三个方法的功能 interrupt() 向当前调用者线程发出中断信号 isinterrupted() 查看当前中断信号是true还是false interrupted() 是静态方法,查看返回当前中断信号并将中断信号...

我爱春天的毛毛雨
30分钟前
1
0
Coding and Paper Letter(二十二)

资源整理。 1 Coding: 1.开源项目openeo api。oponEO开发了一个开放的API,以简单统一的方式将R,python和javascript客户端连接到对地观测大数据云平台的后台。 此存储库包含此API,即oponE...

胖胖雕
56分钟前
1
0
RxJS的另外四种实现方式(三)——性能最高的库

接上篇 RxJS的另外四种实现方式(二)——代码最小的库(续) 代码最小的库rx4rx-lite虽然在性能测试中超过了callbag,但和most库较量的时候却落败了,于是我下载了most库,要解开most库性能...

一个灰
今天
5
0
马太效应

马太效应

yizhichao
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部