本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
乱码三千 – 码出一个新世界
对于初学者来讲,快速掌握一门新技能,不在于把每一步都搞透,而在于先把整个流程跑通,
先控大局,再究其细节 这是快速学习的基本技巧之一
注:一个邮箱只能申请一个小程序账号
注册链接:https://mp.weixin.qq.com/wxopen/waregister?action=step1
注册成功后登陆账号
进入开发设置界面 复制appid 一会开发需要用到
官方下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
安装完毕后打开,然后新建项目
填入之前复制的appid,新手的话选择不使用云服务即可,这样目录相对简单一些
创建成功后会自动生成一些目录和文件
小程序包含一个描述整体程序的 app
和多个描述各自页面的 page
。
一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
文件 | 必需 | 作用 |
---|---|---|
app.js | 是 | 小程序逻辑 |
app.json | 是 | 小程序公共配置 |
app.wxss | 否 | 小程序公共样式表 |
一个小程序页面由四个文件组成,分别是:
文件类型 | 必需 | 作用 |
---|---|---|
js | 是 | 页面逻辑 |
wxml | 是 | 页面结构 |
json | 否 | 页面配置 |
wxss | 否 | 页面样式表 |
1:page 页面文件夹 存放项目页面渲染相关文件
2:utils 存放js库和数字格式化文件
3: 配置文件
需要具备前端相关知识,如果还不具备,建议先学习html+css+js 基础
个人开发大多以展示为主,可以不用开发后台
开发完之后,可以在开发工具选项点击上传按钮将代码至微信后台。如下:
填写版本号和项目备注
上传成功后进入后台管理界面,将刚才上传的程序提交给微信官方审核
一般一两天就能查看审核结果,通过审核之后,还需要发布上线
线上版本发布后,这时你就可以在微信搜索中搜到我们自己的小程序了
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
虚幻4中有一些按键和快捷键很常用,牢记它们并运动到实际的项目开发中,将会大大地提高你的工作效率和使得工作更简便快捷。下面将列举它们出来:
按键 | 动作 |
---|---|
鼠标左键 | 选择actor |
鼠标左键+拖动 | 前后移动和左右旋转摄像头 |
鼠标右键 | 选择actor并打开右键菜单 |
鼠标右键+拖动 | 旋转摄像头方向 |
鼠标左键+鼠标右键+拖动 | 摄像头上下左右移动 |
鼠标中键+拖动 | 摄像头上下左右移动 |
滑轮向上 | 摄像机向前移动 |
滑轮向下 | 摄像机向后移动 |
F | 聚焦选中的actor |
箭头方向键 | 摄像机前后左右移动 |
W | 选中平移工具 |
E | 选中旋转工具 |
R | 选中缩放工具 |
W+任何鼠标按键 | 摄像机向前移动 |
S+任何鼠标按键 | 摄像机向后移动 |
A+任何鼠标按键 | 摄像机向左移动 |
D+任何鼠标按键 | 摄像机向右移动 |
E+任何鼠标按键 | 摄相机向上移动 |
Q+任何鼠标按键 | 摄像机向下移动 |
Z+任何鼠标按键 | 增加视野(鼠标释放后会恢复原状) |
C+任何鼠标按键 | 缩小视野(鼠标释放后会恢复原状) |
Ctrl+S | 保存场景 |
Ctrl+N | 创建新场景 |
Ctrl+O | 打开一个已有的场景 |
Ctrl+Alt+S | 另存为新场景 |
Alt+鼠标左键+拖动 | 复制当前选中的actor |
Alt+鼠标右键+拖动 | 摄像机前后移动 |
Alt+P | 进入Play预览模式 |
Esc | 退出预览模式 |
F11 | 进入仿真模式 |
Hotkey | Action |
---|---|
LMB | Select actor under cursor, replacing selection. |
Ctrl + LMB | Add / Remove actor under cursor to selection. |
Shift + LMB | Add actor under cursor to selection. |
ESC | Clears selection. |
TILDE | Toggles command console. |
Perspective | |
RMB + Drag Forward / Backward | Rotate camera up / down. |
RMB + Drag Left / Right | Rotate camera left / right. |
( RMB + W ) | Numpad8 | Up | Move camera forward. |
( RMB + S ) | Numpad2 | Down | Move camera backward. |
( RMB + A ) | Numpad4 | Left | Move camera left. |
( RMB + D ) | Numpad6 | Right | Move camera right. |
( RMB + E ) | Numpad9 | Page Up | Move camera up. |
( RMB + Q ) | Numpad7 | Page Dn | Move camera down. |
( RMB + C ) | Numpad3 | Zoom camera in. |
( RMB + Z ) | Numpad1 | Zoom camera out. |
LMB + Drag Forward/Backward | Move camera forward /backward |
LMB + Drag Left/Right | Rotate camera left /right |
LMB + RMB + Drag | Move camera up /down |
Orthographic ( Top | Front | Side ) | |
LMB + Drag | Creates selection box, selects contained actors, replacing selection. |
Shift + LMB + Drag | Add actors in selection box to selection. |
Ctrl + Alt + Drag | Remove actors in selection box from selection. |
RMB + Drag | Pan camera. |
LMB + RMB + Drag | Zoom camera in /out. |
Focusing | |
F | Focus camera on selected object or group. |
Camera view | |
Alt + G | Perspective camera. |
Alt + K | Side camera. |
Alt + J | Top camera. |
Actor Manipulation | |
Space | Toggle between ( Translate | Rotate | Scale ), see toolbar for selection. |
W | Selects Move tool. |
E | Selects Rotate tool. |
R | Selects Scale tool. |
V | Toggles vertex snapping. |
LMB + Transform Axis + Drag | Transforms selected actors depending on active tool. |
Perspective (scale works evenly on all axes, rotate/move works as expected) | |
Ctrl + LMB + Drag | Transform selected actor(s) along the x-axis. |
Ctrl + RMB + Drag | Transform selected actor(s) along the y-axis. |
Ctrl + LMB + RMB + Drag | Transform selected actor/s along the z-axis. |
Orthographic | |
Ctrl + LMB + Drag | Transform selected actor(s) along the view plane axis. |
Ctrl + RMB + Drag | Rotate selected actor(s) along the view plane axis. |
Display | |
G | Toggles Game Mode rendering. |
Ctrl + R | Toggles real-time playback. |
F11 | Toggles Fullscreen. |
链接地址:https://leetnightshade.com/blog/unreal-engine-hotkeys
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
学习本篇之前需要先了解《十六进制和二进制的互相转换》
我们知道每个像素都是由三原色红绿蓝三种颜色组成
1 | RGB //Red(红色) Green(绿色) Blue(蓝色) |
一个像素点可以由4组8位二进制数表示(不要问为什么 重点)
1 | 1 1 1 1 1 1 1 1 第一组 表示红色 R |
也就是我们熟知的RGBA
既然我们已经知道了二进制的颜色, 根据二进制转十六进制 利用8421法必然会将每个颜色的二进制分为两组 比如:
1 | 8 4 2 1 8 4 2 1 |
第一组为:2+1=3
第二组为:4
那么其对应的十六进制结果为0x34
所以RGBA每个通道需要两位十六进制进行表示
你学会了吗
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
已知二进制值
1 | 110100 |
从右到左4位4位的进行分割(不要问为什么),位数不足的在左边添0 得到两组二进制:
1 | 0011 0100 |
然后利用8421进行对应
1 | 8 4 2 1 8 4 2 1 |
把0对应的值去掉 1对应的值相加得到:
第一组为:2+1=3
第二组为:4
那么其对应的十六进制结果为0x34
同理 已知十六进制
1 | 0x52 |
第一组是5 第二组是2 对应关系为:
1 | 8 4 2 1 8 4 2 1 |
由于4+1=5 所以第一组4和1下面为1其余为0,同样第二组2下面值为1
最后得到二进制值为:01010010
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
首先 我们需要背诵2的2到10的幂次方,这个我相信对大家都不难,它们分别是
1 | 1、 2、4、8、16、32、64、128、 256、 512 、1024 |
这些对应的二进制分别是
1 | 1、10、 100 、1000 、10000 、100000、 1000000 、10000000、 100000000 、1000000000. |
接下来,就是开始心算的时候,比如:
9=8+1 对应二进制 1001
17=16+1 对应二进制 10001
34=32+2 对应二进制 100010
245=128+64+32+16+4+1 对应二进制 11110101
每次从高位依次往下写,比如34 从32 往下写 依次是
1 | 32、16 、8 、4 、2 、1 |
在该位数上分解的数有该数就写1,没有就写0。得到:
1 | 1、0、0、0、1、0 //也就是100010 |
同理,也是从高位开始计算,;先数二进制数比如:
101010 6个数 就从2的(6-1)次方开始计算
分别是32+8+2=42
找到最大位,依次往下数,该位上是1的话,就写出该数,最后相求和即可。
是不是很简单呢
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
权威的wiki说法是“隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。”,图片隐写术简而言之就是利用图片来隐藏某些数据,让人一眼看去以为是很普通很正常的图片,但其实里面隐藏着某些“机密”数据。
据传911事件里,KB份子就是通过黄色图片来传递信息而躲过了FBI的监控。还有大众点评也是通过图片隐写术来保护自身合法权益。所以图片隐写术是一个双刃剑,就看你用它做什么了。
比如下面这张图片:
看起来是一张很漂亮的风景照片,但其实它里面却藏着一张美女图(注:美女图片来源于淘宝某店),如下:
是不是很惊艳?看得你热血沸腾鼻血都往外冲呢?这就是图片隐写术的历害之处,“机密”隐藏于无形之中!
图片隐写有多种方式,我这里介绍的是采用图片的最低有效位(LSB)进行隐写。其原理就是图片的像素点都是由三原色(RGB)构成(如下图),由这三原色可以组成各种颜色,如CSS里的颜色定义#FFFFFF,即是三原色的16进制值写法,每个颜色各占用8bit。而LSB隐写就是修改像素中每个颜色值的最低位值,而这些修改,人眼一般是分辨不出来的,从而达到数据隐藏的目的。
譬如我们想把’A’隐藏进来的话,如下图,就可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二进制串。
(注:以上图片和示例来源于Wooyun)
代码项目见GitHub: https://github.com/kingthy/imagemask
1 | <script type="text/javascript" src="imagemask.js"></script> |
1 | //脚本里传入页面的canvas对象和要隐写的文件 |
1 | //脚本里传入页面的canvas对象和要隐写的文件 |
1 | var canvas = document.getElementById('canvas'); |
1 | var canvas = document.getElementById('canvas'); |
隐写一章3千多字的小说内容后的图片效果
(隐写什么小说内容,各位有兴趣的将图片保存下来,然后在演示页面里读出来即可知道。)*
以上两张(包括上面有美女的那张)图片效果几乎是一样的,人眼是看不出来有任何变化。
1)、LSB方式的隐写图片只能存储为PNG或者BMP图片格式,并且不允许再采用有损压缩(比如JPEG),否则会丢失隐写的数据!
2)、图片里可以隐写任何数据,并且可以存储的数据多少由图片的大小(长宽)来决定。也许一张图片就能存储下一部圣经的所有文字。
工具是有了,我们可以用来做些什么呢?发挥你的想象吧:)
1)、防采集:将文本内容隐写到图片里,这样就能防直接的采集(比如小说网站、内容原创网站) ,当然了,只能防君子了。
2)、版权水印:将版权水印(文字或者图片)或者其它身份识别标记(如公司里防泄密)隐写到图片里,如果对方直接盗用,则可以起到鉴别作用(如大众点评网案例)。当然了,如要防“攻击”(压缩,变形,涂改等)则需要更高深的隐写方式。有兴趣的可阅读啊里月饼事件引发的知乎讨论贴里的牛人回复。
传递门:https://www.zhihu.com/question/50735753/answer/122717091
3)、防监控:将文本或图片隐写到图片里,可以防机器(某墙?)监控(比如整网站都是好孩子图片或风景图,但其实都是坏孩子图片或者XX小说、XX内容)
4)、文件下载: 直接将文件存于图片里,绕过文件格式限制问题。比如很多图床只能传图片,但经过隐写后就可以图片里藏任意文件了,比如大家都喜欢的种子,当然了,要求图床不会再进行图片再次压缩。
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
一种采用特殊方式将图片文件(如jpg格式)与压缩文件结合起来的文件。该文件一般输出为jpg图片文件,可以正常预览图片;当有人将该图片下载到本地后,可以通过修改文件的后缀,将.jpg改为.zip,并用winrar/7zip查看得到数据。由于这种方式有利于某些网友(老司机)传播种子文件,故称为图种,又叫作内涵图。
比如上面这张图片,右键保存到本地将文件后缀改成zip后打开,会有意想不到的收获
首先准备一张图片和一个要存放起来的压缩包,然后执行dos命令,如下
1 | copy 1.jpg/b+2.zip=3.jpg |
执行以上指令后会生成一个3.jpg文件,这个图片如果用图片工具打开的话跟普通图片没什么区别,可以正常查看,如果修改后缀为zip或者用压缩工具打开的话可以看到自己存在压缩包里的内容
使用方法很简单,直接提供下载地址
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
老司机一般都不只有一个github账号,多个账号同一台电脑部署代码 如果使用同一个公钥肯定是不行的,会报权限拒绝,那么如果解决这个问题呢
生成一个新的sshkey
1 | ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/名字(如abc) |
此时 在.ssh
目录下会生成一个abc.pub
和abc
(.ssh
目录一般位于C:\Users\windows\.ssh
)
在.ssh
目录下进行config
文件的配置(如果没有就新建一个,不用后缀名)
以下是config
文件的内容(直接拷贝的话 记得把注释去掉)
1 | # 这个是原来的key |
因为系统默认只读取id_rsa
,为了让SSH
识别新的私钥,需将其添加到SSH agent
中:
1 | ssh-add ~/.ssh/abc |
如果出现Could not open a connection to your authentication agent
的错误,就试着用以下命令:
1 | ssh-agent bash |
1 | ssh-add ~/.ssh/abc |
将新生成的公钥(.pub
后缀)复制过去
平常咱们关联远程仓库代码是这样的
1 | git remote add origin git@github.com:name/project.git |
如果你想关联新github账户的仓库 需要改成
1 | git remote add origin git@github_1.com:name/project.git |
只要把github
域名改成config
中配置的就行
到此,就完事了
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站