海运的博客

Vmware Workstation安装黑群晖系统

发布时间:September 11, 2020 // 分类: // No Comments

下载Jun's Loader DSM 6.2,然后转换为vmware可用的vmdk虚拟机硬盘格式。

qemu-img convert -f raw synoboot.img -O vmdk synboot.vmdk

添加虚拟机,内核选其它linux 4.x 64位,添加2个sata硬盘(这里选择scsi和ide都不能正常引导),第一个选择上面已存在的synboot硬盘文件,第二个新建硬盘用于安装群晖系统。
去群晖官网下载与synoboot对应的系统文件,启动虚拟机打开http://find.synology.com/或使用synology-assistant客户端安装群晖系统。

此内容被密码保护

发布时间:September 6, 2020 // 分类: // No Comments

请输入密码访问

firefox下PT-Plugin-Plus打包并签名

发布时间:July 2, 2020 // 分类: // No Comments

安装nodejs和yarn:

curl -sL https://deb.nodesource.com/setup_12.x | bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt update && sudo apt install yarn nodejs

打包PT-Plugin-Plus:

git clone https://github.com/ronggang/PT-Plugin-Plus.git
cd PT-Plugin-Plus/
yarn install
yarn build

打包dist目录,提交到firefox自托管附加组件签名

cd dist
zip -q -r pt-plugin-plus.zip *  

php openssl chacha20加密

发布时间:May 3, 2020 // 分类: // No Comments

ietf版chacha20 nonce为12字节,openssl_encrypt传递iv参数最低16字节,将nonce前面以\0补充到16字节。

<?php
$key = hash('sha256', "pass", true);
$nonce = random_bytes(12);
$msg = "message";
$cipher_str = openssl_encrypt($msg, 'chacha20', $key, OPENSSL_NO_PADDING, "\0\0\0\0".$nonce);
echo "cipher hex: " . bin2hex($cipher_str) . PHP_EOL;
$plain_str = openssl_decrypt($cipher_str, 'chacha20', $key, OPENSSL_NO_PADDING, "\0\0\0\0".$nonce);
echo "plain text: ".$plain_str.PHP_EOL;

golang XChaCha20/ChaCha20/XChaCha20-Poly1305/ChaCha20-Poly1305加密

发布时间:May 2, 2020 // 分类: // No Comments

ChaCha20和XChaCha20,NewUnauthenticatedCipher传入nonce值为12字节时使用ChaCha20,24字节时使用XChaCha20加密方法:

package main

import (
        "crypto/sha256"
        "fmt"
        "io"
        "crypto/rand"
        //"encoding/hex"
        "golang.org/x/crypto/chacha20"
)

func main() {

        pass := "Hello"
        msg := []byte("Pass")
        //msg, _ := hex.DecodeString("e07a6838")

        key := sha256.Sum256([]byte(pass))

        //nonce := make([]byte, chacha20.NonceSize)
        nonce := make([]byte, chacha20.NonceSizeX)
        if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
                panic(err.Error())
        }

        cip, _ := chacha20.NewUnauthenticatedCipher(key[:], nonce)
        ciphertext := make([]byte, len(msg))
        plaintext  := make([]byte, len(msg))
        cip.XORKeyStream(ciphertext, msg)

        cip2, _ := chacha20.NewUnauthenticatedCipher(key[:], nonce)
        cip2.XORKeyStream(plaintext, ciphertext)

        fmt.Printf("Message:\t%s\n", msg)
        fmt.Printf("Passphrase:\t%s\n", pass)
        fmt.Printf("Key:\t%x\n", key)
        fmt.Printf("Nonce:\t%x\n", nonce)
        fmt.Printf("Cipher stream:\t%x\n", ciphertext)
        fmt.Printf("Plain text:\t%s\n", plaintext)

}

XChaCha20-Poly1305和ChaCha20-Poly1305加密,分别调用NewX和New初始化,nonce同上ChaCha20和XChaCha20的大小。

package main

import (
        "crypto/rand"
        "crypto/sha256"
        "fmt"
        "golang.org/x/crypto/chacha20poly1305"
        "io"
)

func main() {

        pass := "Hello"
        msg := "Pass"

        key := sha256.Sum256([]byte(pass))
        //aead, _ := chacha20poly1305.NewX(key[:])
        aead, _ := chacha20poly1305.New(key[:])

        //nonce := make([]byte, chacha20poly1305.NonceSizeX)
        nonce := make([]byte, chacha20poly1305.NonceSize)
        if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
                panic(err.Error())
        }

        ciphertext := aead.Seal(nil, nonce, []byte(msg), nil)
        plaintext, _ := aead.Open(nil, nonce, ciphertext, nil)

        fmt.Printf("Message:\t%s\n", msg)
        fmt.Printf("Passphrase:\t%s\n", pass)
        fmt.Printf("Key:\t%x\n", key)
        fmt.Printf("Nonce:\t%x\n", nonce)
        fmt.Printf("Cipher stream:\t%x\n", ciphertext)
        fmt.Printf("Plain text:\t%s\n", plaintext)

}
分类
最新文章
最近回复
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
归档