AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-446921

RocketNuts's questions

Martin Hope
RocketNuts
Asked: 2022-12-25 13:26:49 +0800 CST

bash 中的 sed:'-n' 作为输入的区别对待?

  • 6

我正在努力解决sed在 macOS 和 Ubuntu 上都会出现的 in bash 问题。在长时间的调试过程中,我将其精确定位到这个最小的示例:

echo "abcde" | sed 's/.*/x/'
结果是:

X

这是有道理的,因为中的正则表达式sed将任何输入替换为x.

相似地:

echo "" | sed 's/.*/x/'

X

echo "-a" | sed 's/.*/x/'

X

等等。然而:

echo "-n" | sed 's/.*/x/'

请注意,输出现在为空。

这是怎么回事?为什么"-n"as 输入与sed任何其他(或无)输入的处理方式不同?

linux
  • 1 个回答
  • 29 Views
Martin Hope
RocketNuts
Asked: 2022-10-12 02:12:37 +0800 CST

Bash:在 CLI 上截断或裁剪二进制文件或标准输入的一部分?

  • 5

如果我有一个二进制文件,或者一些带有原始二进制输出的命令,并且我正在寻找一个 shell (bash) 命令来裁剪数据的特定部分,即具有给定的开始和长度或以字节为单位的结束偏移量。

例如,假设file.bincontains abcdefghijk,我会这样做:

cat file.bin | crop 5 3

为了表明我只想保留偏移量 5 中长度为 3 的部分,因此此示例将输出fgh.

我知道有cut命令,但它适用于文本内容并逐行处理输入。就我而言,我通常处理二进制数据,因此没有线的概念。我只想指定要以字节为单位裁剪的部分。

有二进制替代方案cut吗?

linux command-line
  • 2 个回答
  • 20 Views
Martin Hope
RocketNuts
Asked: 2022-07-01 06:19:31 +0800 CST

Excel / LibreOffice Calc:在最近第一次出现的列中查找项目?

  • 6

在 Calc 或 Excel 工作表中,我有一列包含一堆名称。每个名称可以出现一次或多次。

每个名称都有一个“第一次出现”,即它出现的第一行。

我正在寻找一个表达式或公式来查找最近第一次出现的名称。

一个例子来澄清:

姓名
1 爱丽丝
2 查理
3 鲍勃
4 前夕
5 查理
6 大卫
7 鲍勃
8 爱丽丝
9 大卫
10 查理
11 前夕

David第一次出现是第 6 行,所有其他名称都出现得更早(也更往下,但我只对它们的第一次出现感兴趣)。所以在这种情况下,我想要的名字是David.

我可能会想到一个带有备用列和排序机制的过度设计的解决方案,但我觉得可能有一种更简单的方法来做到这一点。

microsoft-excel worksheet-function
  • 2 个回答
  • 34 Views
Martin Hope
RocketNuts
Asked: 2021-10-03 11:15:15 +0800 CST

LibreSSL aes 加密与 OpenSSL 不兼容?

  • 6

机器 A 有 OpenSSL 1.0.2k,我像这样加密一个虚拟文件:

openssl enc -aes-256-cbc -salt -in plain.txt -e -pass pass:abcd1234 -out cipher.enc

机器 B 具有 LibreSSL 3.3.3,当我从机器 A 解密文件时,如下所示:

openssl enc -aes-256-cbc -in cipher.enc -d -pass pass:abcd1234 -out plain.txt

它无法解密,出现此错误:

错误解密
4444794304:错误:06FFF064:数字信封例程:CRYPTO_internal:错误解密:evp/evp_enc.c:549:

请注意,如果我尝试在机器 A 上使用相同的命令行对其进行解密,它工作正常。

我不知道 OpenSSL 1.0.2k 有多么过时,但不幸的是我无法控制它的升级(它是一个远程 3rd 方服务器)。

使用 AES 加密时,OpenSSL 和 LibreSSL 之间是否存在不兼容?

encryption openssl
  • 1 个回答
  • 923 Views
Martin Hope
RocketNuts
Asked: 2020-09-20 03:09:17 +0800 CST

在 macOS 10.15.6 上随 Homebrew 一起安装的 OpenSSL 似乎卡在了 @1.1 版本,而改为获取最新版本?

  • 6

我正在使用 macOS 10.15.6 Catalina 和 Homebrew(最新版本,2.5.1)。当我这样做时,brew list我注意到openssl@1.1我的已安装公式列表中有。

我不记得我是否曾经openssl手动安装过或者它附带了另一个公式,但我自己当然从来没有明确选择过这个@1.1版本。

当我这样做时openssl version,它说LibreSSL 2.8.3。

当我这样做时brew install openssl,它说:

警告:openssl@1.1 1.1.1g 已经安装并且是最新的
要重新安装 1.1.1g,运行brew reinstall openssl@1.1

相反,我尝试了brew install libressl. 安装好,但是当我现在这样做时,openssl version它仍然说LibreSSL 2.8.3.

但是,如果我这样做/usr/local/opt/libressl/bin/openssl version,它会说LibreSSL 3.1.4这似乎是最新的。所以现在显然安装了两个版本,但“默认”版本仍然是旧版本。

两个问题:

  1. 我只想使用最新的 openssl(或 libressl)。当我运行时,openssl我希望它调用可用的最新版本。我可以或应该以某种方式摆脱该@1.1版本并安装最新的 openssl 吗?或者像我一样安装 libressl,但是我希望它是默认的,而不是旧的。

  2. 考虑到@1.1 版本的存在可能是有原因的,这是否意味着依赖于该特定版本的某些其他软件将不再工作?这有点糟糕,例如,如果我碰巧有两个软件,每个软件都依赖于不同的特定版本,该怎么办。我可以指示依赖旧版本的软件使用旧版本的特定路径,同时保持openssl(没有显式路径)是最新的吗?

installation openssl
  • 1 个回答
  • 3844 Views
Martin Hope
RocketNuts
Asked: 2020-09-17 04:23:13 +0800 CST

使用openssl enc -camellia256时,它使用什么块模式?

  • 6

openssl使用 Camellia 256 位密码加密文件时,您可以明确指定块模式(例如camellia-256-cfb等camellia-256-ofb)。但是,如果您只使用-camellia256不带块模式的选项,那么假定的隐式模式是什么?

我尝试通过使用固定的虚拟 iv 和密钥以所有不同的模式加密相同的文件来弄清楚,如下所示:

#!/usr/bin/env bash

# create 1MB file with random data
openssl rand 1048576 -out random.bin

iv='11111111111111111111111111111111'
key='2222222222222222222222222222222222222222222222222222222222222222'
ciphers=(camellia256 camellia-256-cfb camellia-256-cfb1 camellia-256-cfb8 camellia-256-ecb camellia-256-ofb)

for c in ${ciphers[*]}; do
  # encrypt
  openssl enc -$c -iv $iv -K $key -in random.bin -out random-$c.bin
  # show hash of encrypted result
  openssl dgst -sha256 random-$c.bin
done

输出是:

SHA256(random-camellia256.bin)= 5625222f4bc4dd0e690ebfd24ade853f22d5155584756d9da41b6d8657d01a75
SHA256(random-camellia-256-cfb.bin)= 2b57e9cd8566af072a6162b21dc4e69337d2a9a23443fc7c25c0c1eba7f2d6eb
SHA256(random-camellia-256-cfb1.bin)= ae96dc3bdea49ec1d5c706db7f4e097f8e4e641abf2bb108eb57aa90d00eb84e
SHA256(random-camellia-256-cfb8.bin)= 7266631c9616fbfc00039dd868ba74af09d8829af11b45d83d46cb12925dceb2
SHA256(random-camellia-256-ecb.bin)= f91f4d164d40e7abb2b6a11e051d12ff82d256e4f52437d9f8997670cdb337b8
SHA256(random-camellia-256-ofb.bin)= 79a29d5790a68498ca90acb8b19fcb4e2a0066527a9de2419b9633d9f3cbaa6e

当然,由于随机输入,每次运行脚本时都会有所不同。

或者,如果我使用填充零(0x00 字节)而不是随机数据的文件,如下所示:

dd bs=1048576 count=1 if=/dev/zero of=zeroes.bin

输出是:

SHA256(zeroes-camellia256.bin)= 22116d07d0c5b43e736f9990ad3f48c7710fe78ba1d6bb993dfa5a6d3a6fb133
SHA256(zeroes-camellia-256-cfb.bin)= cc75fc3257959bcaee12de3da7ef547d2f548a936d9068abde103c158d9540a8
SHA256(zeroes-camellia-256-cfb1.bin)= 912dc60b10bfad7d33fed18c1419f83437fcf84708a9336f3bbcf0a6164cd70d
SHA256(zeroes-camellia-256-cfb8.bin)= 70d340b32f58c9f2169a91c20698893046b76cd560e7a0fe2a1001591990fb8e
SHA256(zeroes-camellia-256-ecb.bin)= b9fdd441312bf9992fdca2fbbdbc165a738359312de53b0ddc71e383880cd43f
SHA256(zeroes-camellia-256-ofb.bin)= cc75fc3257959bcaee12de3da7ef547d2f548a936d9068abde103c158d9540a8

注意这里的cfb和ofb输出是一样的。但这可能是由于这些块模式如何根据输入数据定义密码流。

无论如何,没有明确定义块模式的模式再次与所有其他模式不同。

-camellia256所以我的问题是:当我指定为密码算法时,openssl 使用什么块模式?

顺便说一句,当我使用 AES 而不是 Camellia 进行测试时,它似乎aes256与aes-256-cbc.

openssl blocking
  • 1 个回答
  • 155 Views
Martin Hope
RocketNuts
Asked: 2020-07-28 06:57:00 +0800 CST

Gimp:以正确的像素大小/尺寸打开剪贴板作为新图像?

  • 7

我经常发现自己的剪贴板中有一张图片,然后我想在 Gimp 中快速编辑它。

所以我⌘+Tab到 Gimp(在 macOS Catalina 上使用最新的 Gimp)并为 New Image 做⌘+ N。

问题:它现在显示一些默认的新图像大小,通常为 1920 x 1200,而我宁愿让它使用剪贴板内容的分辨率。现在我必须:

  1. 将画布放大到太大(我通常不完全知道剪贴板图像实际上有多大)
  2. 将剪贴板粘贴为图层
  3. 把它变成一个新图层(默认情况下它是一个浮动选择,还不是一个图层)
  4. 右键单击图层列表中的图层,然后选择 Alpha to Selection
  5. 选择图像 > 裁剪到选区

似乎有点效率低下。如果 Gimp 可以假定剪贴板中任何图像的尺寸(如果有)作为默认尺寸,那就太好了。实际上Photoshop是这样做的,非常实用恕我直言。

这在 Gimp 中可行吗?

resolution clipboard
  • 1 个回答
  • 967 Views
Martin Hope
RocketNuts
Asked: 2020-05-10 11:22:30 +0800 CST

Gimp:将图像(从剪贴板)粘贴为新图层,并将文档裁剪为该图层的大小?

  • 5

在 macOS Catalina 上使用 Gimp 最新版本 (2.10)。

我的剪贴板中有一张图片。我切换到打开工作文档(图像)的 Gimp。我如何能:

  1. 将剪贴板中的图像粘贴为新图层,我可以使用⌘+V来粘贴它,这会将其显示为'Floating Selection (Pasted Layer)'。

  2. 如何移动图层?当我使用移动工具时,它似乎移动了底层背景层。

  3. 是否可以像 Photoshop 的“自由变换”工具一样移动/缩放/旋转/倾斜新图层?我的意思是图层在角落和边缘获得8个临时控制点或锚点,我可以在任何方向拉伸它(通过保持或不保持纵横比或其他方式Shift)或移动或旋转它?

  4. 如何将图像裁剪为新粘贴图层的大小?

如果这些是迟钝的问题,PS 道歉,对 Gimp 来说是全新的,试图从 Photoshop 切换。

gimp clipboard
  • 1 个回答
  • 800 Views
Martin Hope
RocketNuts
Asked: 2020-03-24 07:54:27 +0800 CST

为 SSH 生成私钥+公钥对:ssh-keygen 和 openssl 之间的区别?

  • 8

我想创建用于 SSH 身份验证的私钥和公钥对。

我无法弄清楚这之间的区别:

openssl genrsa -out MyPrivateKey 4096
openssl rsa -in MyPrivateKey -pubout -out MyPublicKey

它首先创建一个私有 RSA 密钥,然后从中派生公共密钥,或者:

ssh-keygen -b 4096 -t rsa -f MyFancyKey

这会在文件“MyFancyKey”中创建一个私有 RSA 密钥,并在“MyFancyKey.pub”中创建相应的公钥。

私钥的结构似乎有些相似,尽管创建的一个openssl开头是:
-----BEGIN RSA PRIVATE KEY-----

并且从以下ssh-keygen开始:
-----BEGIN OPENSSH PRIVATE KEY-----

这两种键之间有根本区别吗?


然后是相应的公钥,其中一个openssl包含:

-----BEGIN PUBLIC KEY-----
  ...base64 encoded...
-----BEGIN PUBLIC KEY-----

而 fromssh-keygen仅包含一行:
ssh-rsa XXXXXX...base64 encoded...XXXXX Rocketnuts@Rocketnuts-MBP.my.networkname

这些本质上是相同类型的数据,但格式不同吗?还是它们真的不相容?

我试图完全理解所有这些与 SSH 相关的工作原理。例如,为什么我的用户名、我的计算机名称和我的本地网络名称在该密钥中,它通常不应该用于访问其他计算机上的 SSH 吗?在那台计算机上使用我的用户名,而不是我自己的用户名。

ssh openssh
  • 1 个回答
  • 5333 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve