V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dearxe2v
V2EX  ›  程序员

简单给 Shell 脚本提供中文英文多语言国际化支持, bash sh cmd bat 命令行批处理脚本中一个函数搞定

  •  
  •   dearxe2v · 2023-09-13 10:30:07 +08:00 · 1290 次点击
    这是一个创建于 444 天前的主题,其中的信息可能已经有所发展或是发生改变。

    直接看原文吧: https://www.cnblogs.com/xiangyuecn/p/17698735.html

    平时见别人写的 shell 脚本,要么是英文要么是中文,没见过一个脚本里面同时支持多种语言的,也搜不到什么比较好学的参考资料,于是给 bash 脚本、bat 脚本分别写了一个同时支持中文和英文显示的函数,可以根据用户语言环境,让脚本自动显示成中文或英文。

    bat 里面语言的判断比较骚,使用 ver | find "版本" 直接识别是不是中文😂 bash 的判断就简单很多,函数编写也简单


    这些脚本目前是用在了两开源库里面,给 windows 环境编写的 bat 脚本,macOS 、Linux 环境编写的 sh 脚本

    • https://github.com/xiangyuecn/RSA-csharp 里面的 Test-Build-Run.bat 和 Test-Build-Run,sh 脚本,无需 IDE 直接调用.NET 编译运行 c#代码,支持 .NET Core 、.NET Framework 环境下 PEM ( PKCS#1 、PKCS#8 )格式 RSA 密钥生成、导入、导出,多种常见 RSA 加密、签名填充算法支持。
    • https://github.com/xiangyuecn/RSA-java 同样 sh 、bat 两个脚本,无需 IDE 直接调用 JDK 编译运行 java 代码,Java 环境下 PEM ( PKCS#1 、PKCS#8 )格式 RSA 密钥生成、导入、导出,多种常见 RSA 加密、签名填充算法支持。

    可以翻翻里面的脚本文件,好使👌

    4 条回复    2023-09-13 13:55:09 +08:00
    geelaw
        1
    geelaw  
       2023-09-13 10:37:22 +08:00 via iPhone
    我应该提示一下使用托管代码写密码算法是不宜在生产中使用的,因为无法精准控制密钥何时从内存中删除(垃圾回收算法可能会随意搬动和复制内存数据,所以仅仅是清空或覆写数组是无意义的)。
    dearxe2v
        2
    dearxe2v  
    OP
       2023-09-13 11:01:30 +08:00
    @geelaw 哈,这个知识点超纲了哈,不过当内存中的数据如果有比较大的泄露风险时,那本地磁盘上数据只会更不安全,比如 ngnix 里面配置的 rsa 证书密钥,程序中的支付证书密钥,往往是明文存储在本地或硬编码在程序里面。这两库对密钥的使用和其他大部分调用 RSA 的代码差不多,只是封装了一下,和大部分普通程序一样(支付调用示例程序),对密钥在服务器内存中是否安全并没有考虑;如果安全性要求很高,那应当从头设计编写符合安全需求的 RSA 加密程序,包括密钥如何安全的存取,得加钱😆
    geelaw
        3
    geelaw  
       2023-09-13 11:15:56 +08:00
    @dearxe2v #2 这种归约式论证不成立。

    考虑 A 使用 B 的公钥加密刚刚通过键盘输入的数据,此时加密算法的随机数和明文并不来自于磁盘,如果使坏者得到了此随机数,则此密文丧失安全性,A 当然希望在加密算法运行完毕后从内存里删除随机数和明文。

    另外,内存可能是主动发给外界,而不是被窃听的,例如调试崩溃记录的时候,当然希望内存转储里敏感信息越少越好。

    题外话:RSA 加密已经不怎么实用了,主要是安全性弱带来的性能问题。
    toexplore
        4
    toexplore  
       2023-09-13 13:55:09 +08:00
    gettext ??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2839 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:53 · PVG 11:53 · LAX 19:53 · JFK 22:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.