如何解码Linux中的base64编码行?(How do I decode base64 encoded lines in linux?)

我正在尝试读取文件并仅提取base64编码部分。 我通过使用sed来查找模式的'base64'和' - '之间的界限。

我能够这样做使用

sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d'

但是当我尝试使用base64解码它时,如下所示,

sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d' | base64 -d

我收到一条错误消息: -

BEGIN:VCALENDAR

METHOD:REQUEST

PRODID:Microsoft Exchangbase64: invalid input

请让我知道我做错了什么,是否有更好的方法来实现最终结果。 任何帮助表示赞赏。

I am trying to read a file & extract only the base64 encoded part. I am doing so by using sed to find the lines between the pattern's 'base64' & '--'.

I am able to do so using

sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d'

But when i try to decode it using base64 as shown below,

sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d' | base64 -d

I get an error message as :-

BEGIN:VCALENDAR

METHOD:REQUEST

PRODID:Microsoft Exchangbase64: invalid input

Please let me know what am i doing wrong and is there an alternate, better way to achieve the end result. Any help is appreciated.

原文:https://stackoverflow.com/questions/41983454

更新时间:2019-12-25 19:04

最满意答案

我得到了这个问题。 文件中的行如下所示

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5nZSBTZ

XJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpBVVMgRWFzdGVybiBTdG

最后有一个结束字符,所以我所要做的就是删除它。 因此,现在我的代码看起来如下&它的工作原理: -

sed -e '1,/base64/d' -e '/--/,$d' _12829640_21.12.-.5p.meeting.room_1485234639532_1.mail | sed '/^\s$/d' | tr -d "\n\r" | base64 -d

I got the issue. the lines in the files were as follows

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5nZSBTZ

XJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpBVVMgRWFzdGVybiBTdG

There was an end line character at the end, so all i had to do was remove it. Hence, now my code looks as below & it works :-

sed -e '1,/base64/d' -e '/--/,$d' _12829640_21.12.-.5p.meeting.room_1485234639532_1.mail | sed '/^\s$/d' | tr -d "\n\r" | base64 -d

2017-02-02

相关问答

实际上Windows确实有一个实用程序来编码和解码base64 - CERTUTIL 我不知道什么版本的Windows引入了这个命令。 要对文件进行编码: certutil -encode inputFileName encodedOutputFileName

要解码文件: certutil -decode encodedInputFileName decodedOutputFileName

CERTUTIL有许多可用的动词和选项。 要得到几乎所有可用动词的列表: certutil -?

...

您可以使用以下正则表达式来检查字符串是否是base64编码的: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$

在base64编码中,字符集是[AZ, az, 0-9, and + /] 。 如果剩余长度小于4,则字符串用'='填充。 ^([A-Za-z0-9+/]{4})*表示字符串以0个或更多个base64组开头。 ([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|

...

从v6起,Java SE随附JAXB。 javax.xml.bind.DatatypeConverter具有使方便的静态方法。 请参阅parseBase64Binary()和printBase64Binary() 。 As of v6, Java SE ships with JAXB. javax.xml.bind.DatatypeConverter has static methods that make this easy. See parseBase64Binary() and printB

...

所以你发送请求: http://host:port/myServlet?content=base64_encoded_value

这是由servlet中的方法使用的: protected void doGet(HttpServletRequest request, HttpServletResponse response) {

让我们来看看你在做什么: String content = request.getParameter("content");

似乎字符串内容现在将包含“bas

...

不要将(可能的)二进制文件转换为UTF-8 String ; 而是用FileUtils.writeByteArrayToFile(File, byte[])写byte[] byte[] decodedBytes = Base64.getDecoder().decode(contents.trim());

// String decodedString = new String(decodedBytes);

// FileUtils.write(file,decodedString,"UTF-8")

...

我得到了这个问题。 文件中的行如下所示 QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5nZSBTZ

XJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpBVVMgRWFzdGVybiBTdG

最后有一个结束字符,所以我所要做的就是删除它。 因此,现在我的代码看起来如下&它的工作原理: - sed -e '1,/base6

...

您可以将其写入文件,就像您可以编写任何其他数据一样。 但是,您需要将文件句柄设置为二进制 。 my $decoded= MIME::Base64::decode_base64($photo);

open my $fh, '>', 'photo.jpg' or die $!;

binmode $fh;

print $fh $decoded;

close $fh

You can write it to a file just like you can write any other data. Yo

...

不幸的是,Base64不是base64。 实现中可能存在差异。 一些实现例如插入行在编码时每76个字符中断,有些则不然。 Base64 is not base64 unfortunately. There may be differences in the implementations. Some implementation for example insert line breaks every 76 characters when encoding, some don't.

似乎最终的A是多余的: In [4]: base64.b64decode('aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAz')

Out[4]: 'http://4ufree.tk/media723646/fuenf/036.mp3'

It would appear that the final A is superfluous: In [4]: base64.b64decode('aHR0cDovLzR1ZnJlZS50ay9tZ

...

这是一些Python代码,它接受命令行上的搜索词后面的文件名。 像往常一样,如果arg包含空格,则必须引用它。 import sys

from base64 import b64decode

fname, pattern = sys.argv[1:]

with open(fname) as f:

for row in f:

row = b64decode(row).decode()

if pattern in row:

print(

...

linux解码base64工具,如何解码Linux中的base64编码行?(How do I decode base64 encoded lines in linux?)...相关推荐

  1. php编码 js解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...

  2. js 编码 php 解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonStr = json_encode($array) 2)解码 $arr = json_decode($jsonStr) echo json_encode("中文 ...

  3. linux 书签管理工具,如何在Ubuntu中添加和删除书签

    这是一篇对完全是新手的一篇技巧,我将向你展示如何在Ubuntu文件管理器中添加书签. 现在如果你想知道为什么要这么做,答案很简单.它可以让你可以快速地在左边栏中访问.比如,我在Ubuntu中Linux ...

  4. linux kdump 分析工具,Ubuntu 15.10中的Kdump工具实战

    Step 1: 安装kdump and crash工具 sudo apt-get install linux-crashdump Step 2: 安装kernel的符号文件 可以先用apt-cache ...

  5. manjaro linux必装工具,在Manjaro系统中安装常用软件的方法

    本文介绍在Manjaro系统中安装一些常用的软件,有vim.chrome.截图.TIM.网易云音乐.搜狗输入法.markdown编辑器.pdf阅读器.steam.git客户端.下载工具uget.视频播 ...

  6. linux vi 删除行命令,在Vim/Vi中删除行、多行、行范围、所有行及包含模式的行

    本文介绍如何在Vim/Vi中删除行,操作系统为Linux.Vim或其早期版本Vi预装在大多数Linux发行版和macOS中,如果您是系统管理员或只是普通的Linux用户,了解Vim的基础很重要,通常, ...

  7. linux一条命令添加用户并设置密码,linux中如何通过命令行来添加用户并设置密码...

    linux中如何通过命令行来添加用户并设置密码 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 LINUX中如何通过命令行来添加用户 ...

  8. linux中vim如何显示行数,vim 在linux下中如何设置显示行数

    在.vimrc(或/etc/vimrc)文件中输入如下文本: set tabstop=4 set softtabstop=4 set shiftwidth=4 set noexpandtab set ...

  9. kettle怎么复制资源库的job_#linux系统下调度数据库类型资源库中的kettle job

    // linux系统下调度数据库类型资源库中的kettle job - 简书 http://www.jianshu.com/p/bc57ee193ea3 进入linux系统,切换至kettle所属用户 ...

最新文章

  1. Linux美化——终端提示符
  2. 如何把安全证书导入到java中的cacerts证书库(转)
  3. [GAN学习系列] 初始GAN
  4. 图片流写出 并带数据_IO流阶段---字符流
  5. phpcms文章的发布时间改为可输入的文本框
  6. Python numpy 多维数组切片
  7. ShowDoc v2.4.8 发布,IT团队的在线 API 文档工具
  8. vue学习笔记(五)— 组件通信
  9. Windows Azure 配置Active Directory 主机(1)
  10. 数字图像处理_07.2_(顶帽变换,击中击不中原理)
  11. python idle界面_3.7 IDLE 用户界面
  12. LDAP ObjectClass 详解
  13. 分析PS中的3D功能
  14. PTA 1054 求平均值 (20 分)
  15. Legolas工业自动化平台案例 —— 水源地自动化监控系统
  16. Java实现QQ窗口自动输入
  17. java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...
  18. Python对微信好友进行简单统计分析
  19. windows下RNDIS/Ethernet Gadget device驱动安装
  20. 谷粒学苑 —— 7、课程管理:课程发布页面2 —— 课程大纲

热门文章

  1. 详细介绍springData
  2. 老男孩教育每日一题-2017年4月28日- MySQL主从复制常见故障及解决方法?
  3. Android Studio实用插件使用
  4. WIN7的CMD界面下输入ipconfig后提示不是内部或外外部命令,也不是可运行的程序或批处理文件...
  5. centos uwsgi配置_centos下配置nginx+uwsgi运行py以及静态文件的加载
  6. idea java编译报错_intellij-idea,java_idea 编译报错,intellij-idea,java - phpStudy
  7. php怎么将表格导出到excel表格,php怎么将excel表格数据-php 怎么把数据导出到excel表格...
  8. 2fsk基于matlab的仿真,基于matlab的2ask、2psk、2fsk的仿真
  9. python 修改xml_如何在python中更新/修改XML文件?
  10. bmp调色板颜色信息重复_PASCAL VOC数据集-分割标签索引颜色对照及程序