介绍一个JS解密时常用到工具,巨好用

前言

​ 之前做项目的时候,经常遇到代码更新,或者是加密算法匹配比对,我自己找了好多地方,每一个比对工具能让我满意的,感觉都特别的不好用很费劲。常常为了找两个密文之间的差别找的要死要活的,浪费了大量的时间在这上面。

行动

​ 于是乎,我想着不把时间浪费在这种枯燥乏味机械性的事情上,于是乎,让我们公司的技术写了一个文本比对工具,我非常非常的中意,在这里免费给大家贴出来使用。以后做js解密的时候又可以省心不少啦~

工具简要介绍

  1. 并排比较

​ • 该功能允许您并排比较两段文本。文本之间的差异会被高亮显示,方便快速识别变化之处。

​ 2. 逐行比较

​ • 工具可以逐行比较文本,识别出具体有差异的行。这在代码或结构化文档的比较中尤其有用。

​ 3. 高亮显示变化

​ • 文本之间的变化以不同颜色高亮显示,以指示新增、删除或修改的部分。这种视觉辅助有助于快速识别变化的具体内容。

​ 4. 差异摘要

​ • 工具提供差异摘要,显示增加、删除或修改的行数。这提供了一个变化程度的快速概览。

​ 5. 字符级差异

​ • 对于更详细的比较,工具可以在行内高亮显示字符级别的差异。这对于发现细微的变化非常有用。

​ 6. 忽略空白

​ • 可以选择忽略空白字符的差异。这在格式化差异(例如额外的空格或制表符)不应被视为变化时非常有用。

​ 7. 文本输入选项

​ • 用户可以直接在工具中输入文本或上传文件进行比较。这种灵活性使得比较来自不同来源的文本变得容易。

​ 8. 导出和保存结果

​ • 进行比较后,用户可以将结果导出为各种格式,例如文本或HTML,以便进一步分析或记录保存。

​ 9. 实时更新

​ • 工具在您输入或更改文本时实时更新比较结果,提供即时反馈。

​ 10. 用户友好界面

​ • 界面设计直观,易于使用,即使对于不熟悉文本比较工具的人也很友好。提供了清晰的指示和提示来帮助用户。

使用案例

​ • 代码审查:开发人员可以使用该工具比较不同版本的代码,查看更改内容。

​ • 文档比较:作家和编辑可以比较文档的不同草稿,识别编辑和修订内容。

​ • 配置文件:系统管理员可以比较配置文件,检测可能影响系统行为的更改。

​ • 内容更新:网站管理员可以比较网站内容更新,以确保准确性和一致性。

www点sojson点com/gongju/textdiff.html

手动替换为就可以访问啦。

官方大哥请明鉴,我真不是为了打广告,纯分享。无盈利。

另外接js解密,加密,加密思路,防破思路。各种js/web相关。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一个基本的加密文件和解密文件的工具的代码,使用Go语言编写。 首先,我们需要导入一些必要的包,包括`crypto/aes`、`crypto/cipher`、`crypto/rand`、`encoding/hex`、`flag`、`fmt`和`io/ioutil`。代码如下: ```go package main import ( "crypto/aes" "crypto/cipher" "crypto/rand" "encoding/hex" "flag" "fmt" "io/ioutil" ) ``` 然后,我们需要定义一些变量来处理命令行参数。我们使用`flag`包来处理这些参数。我们需要定义两个命令行参数,一个用于加密文件,另一个用于解密文件。代码如下: ```go var ( encryptFile string decryptFile string ) func init() { flag.StringVar(&encryptFile, "encrypt", "", "file to encrypt") flag.StringVar(&decryptFile, "decrypt", "", "file to decrypt") flag.Parse() } ``` 然后,我们需要定义一个函数来生成随机密钥。我们使用`crypto/rand`包来生成随机字节数组。代码如下: ```go func generateKey() []byte { key := make([]byte, 32) if _, err := rand.Read(key); err != nil { panic(err) } return key } ``` 接下来,我们需要定义一个函数来加密文件。我们使用`crypto/aes`包来创建一个新的AES加密块,并使用随机生成的密钥来初始化加密块。然后,我们使用`crypto/cipher`包来创建一个新的加密器,将加密器应用于文件内容,并将加密后的文件写入新文件中。代码如下: ```go func encryptFileWithKey(key []byte, inputFile string, outputFile string) error { block, err := aes.NewCipher(key) if err != nil { return err } fileData, err := ioutil.ReadFile(inputFile) if err != nil { return err } ciphertext := make([]byte, aes.BlockSize+len(fileData)) iv := ciphertext[:aes.BlockSize] if _, err := rand.Read(iv); err != nil { return err } stream := cipher.NewCTR(block, iv) stream.XORKeyStream(ciphertext[aes.BlockSize:], fileData) return ioutil.WriteFile(outputFile, ciphertext, 0644) } ``` 最后,我们需要定义一个函数来解密文件。我们使用`crypto/aes`包创建一个新的AES加密块,并使用相同的密钥和IV来初始化加密块。然后,我们使用`crypto/cipher`包创建一个新的解密器,并将解密器应用于文件内容。最后,我们将解密后的文件写入新文件。代码如下: ```go func decryptFileWithKey(key []byte, inputFile string, outputFile string) error { fileData, err := ioutil.ReadFile(inputFile) if err != nil { return err } iv := fileData[:aes.BlockSize] ciphertext := fileData[aes.BlockSize:] block, err := aes.NewCipher(key) if err != nil { return err } stream := cipher.NewCTR(block, iv) stream.XORKeyStream(ciphertext, ciphertext) return ioutil.WriteFile(outputFile, ciphertext, 0644) } ``` 最后,我们需要在`main`函数中调用这些函数来加密解密文件。代码如下: ```go func main() { if encryptFile != "" { key := generateKey() fmt.Println("Encryption key:", hex.EncodeToString(key)) if err := encryptFileWithKey(key, encryptFile, encryptFile+".enc"); err != nil { panic(err) } fmt.Println("File encrypted successfully!") } if decryptFile != "" { var key []byte fmt.Print("Enter encryption key: ") fmt.Scanln(&key) if err := decryptFileWithKey(key, decryptFile, decryptFile+".dec"); err != nil { panic(err) } fmt.Println("File decrypted successfully!") } } ``` 现在,我们已经完成了一个简单的加密文件和解密文件的工具。完整代码如下:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值