ocr+sha256

这篇具有很好参考价值的文章主要介绍了ocr+sha256。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

sha256

package com.onestar.ymf;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class SHA256WithoutKey {
    public static void main1(String[] args) {
        try {
            // 初始化MessageDigest
            MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
 
            // 要哈希的字符串
            String inputString = "ahyycg@123123";
 
            // 使用update方法处理数据
            sha256.update(inputString.getBytes("UTF-8"));
 
            // 完成哈希计算,获取哈希值
            byte[] hashBytes = sha256.digest();
 
            // 将哈希值转换为十六进制字符串
            StringBuilder hashString = new StringBuilder();
            for (byte b : hashBytes) {
                String hex = Integer.toHexString(0xff & b);
                if (hex.length() == 1) {
                    hashString.append('0');
                }
                hashString.append(hex);
            }
 
            // 打印哈希值
            System.out.println("SHA-256: " + hashString.toString());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {
        String s = "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";
        generateImage(s,"code");
    }

    public static String generateImage(String file, String path) {
        // 解密
        try {
            // 项目绝对路径
            String savePath = "D:\\testFile\\";
            // 图片分类路径+图片名+图片后缀
            //String imgClassPath = path.concat(UUID.randomUUID().toString()).concat(".jpg");
            String imgClassPath = path.concat(".jpg");
            // 解密
            Base64.Decoder decoder = Base64.getDecoder();
            // 去掉base64前缀 data:image/jpeg;base64,
            file = file.substring(file.indexOf(",", 1) + 1, file.length());
            byte[] b = decoder.decode(file);
            // 处理数据
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            File tempFile = new File(savePath);
            //判断文件目录是否存才 不存在创建 避免OutputStream发现不存在报异常
            if (!tempFile.exists()) {
                tempFile.mkdirs();
            }
            // 保存图片
            OutputStream out = new FileOutputStream(tempFile.getPath()+ File.separator+imgClassPath);
            out.write(b);
            out.flush();
            out.close();
            // 返回图片的相对路径 = 图片分类路径+图片名+图片后缀
            return imgClassPath;
        } catch (IOException e) {
            return null;
        }
    }


}

 

tess4j

package com.onestar.ymf;

import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
import java.awt.*;

public class MainServer {
   public static void main(String[] args) throws TesseractException {
       long start = System.currentTimeMillis();
       System.out.println("开始OCR文字识图,请稍后...");
       //加载要识别的图片
       File image = new File("D:\\testFile\\123.png");
       //设置配置文件夹微视、识别语言、识别模式
       Tesseract tesseract = new Tesseract();
       tesseract.setDatapath("D:\\tessdata");
       //设置识别语言为中文简体,(如果要设置为英文可改为"eng")
       tesseract.setLanguage("eng");
       //使用 OSD 进行自动页面分割以进行图像处理
       tesseract.setPageSegMode(1);
       //设置引擎模式是神经网络LSTM引擎
       tesseract.setOcrEngineMode(1);
       //开始识别整张图片中的文字
       String result = tesseract.doOCR(image);
       long time = System.currentTimeMillis()-start;
       System.out.println("识别结束,耗时:"+time+" 毫秒,识别结果如下:");
       System.out.println();
       System.out.println(result);
   }
}

 文章来源地址https://www.toymoban.com/news/detail-853944.html

 依赖

       <!-- Tesseract OCR -->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
             <version>5.9.0</version>
        </dependency>

到了这里,关于ocr+sha256的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 保障安全的散列算法 - SHA256

    SHA-256是由美国国家安全局(NSA)开发的SHA-2密码哈希函数之一,用于数字签名和区块链。在计算机科学和信息安全领域,SHA-256 (安全哈希算法 256位) 是广受欢迎且常被使用的密码学散列函数。SHA-256 产生一个唯一、定长的256位 (32字节)散列值,不仅可以用于密码学中信息的安全存

    2024年04月12日
    浏览(72)
  • SHA-256算法的原理与C/C++实现

    SHA-256 是一种加密哈希函数,旨在将任意大小的数据映射到一个固定大小的哈希值,通常是 256 位(32 字节)。它属于 SHA-2(安全哈希算法 2)家族,旨在提供更高的安全性。 SHA-256 的设计原则包括以下关键步骤: 消息填充 :输入消息的位数必须是 512 的倍数。因此,第一步是

    2024年04月17日
    浏览(98)
  • FIPS 180-2 散列算法SHA-224、SHA-256、SHA-384 和 SHA-512 的C语言快速软件实施:理论与实践

    一、安全散列算法(SHA)简介 安全散列算法(Secure Hash Algorithm,简称SHA)是美国国家安全局(NSA)研发的一种密码散列函数算法标准,由美国国家标准与技术研究院(NIST)认证[3]。SHA系列算法包括SHA-1、SHA-224、SHA-256、SHA-384 和SHA-512 等变体[1]。在本文中,我们将重点介绍FI

    2024年02月14日
    浏览(69)
  • Java工具集 Hex、Hmac算法(MD5、SHA1、SHA256、SHA384、SHA512)、雪花算法SnowflakeId、redis基于Springboot工具类

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 专栏 描述 Java项目实战 介绍Java组件安装、使用;手写框架等 Aws服务器实战 Aws Linux服务器上操作nginx、git、JDK、Vue Jav

    2024年04月09日
    浏览(78)
  • JS逆向---国标哈希算法(MD5,SHA系列,HMAC加密以及相关案例详解)

    在 JavaScript 中和 Python中的基本实现方法,遇到 JS 加密的时候可以快速还原加密过程,有的网站在加密的过程中可能还经过了其他处理,但是大致的方法是一样的。 本篇文章主要讲述内容:消息摘要算法/安全哈希算法/散列消息认证码、密钥相关的哈希运算消息认证码:MD5、

    2024年02月03日
    浏览(80)
  • Solidity Keccak256与SHA3-256

    SHA3由Keccak标准化而来,在很多场合下Keccak和SHA3是同义词,但在2015年8月SHA3最终完成标准化时,NIST调整了填充算法: SHA3-256(M) = KECCAK [512] (M || 01, 256) 。所以标准的NIST-SHA3就和Keccak计算的结果不一样。 如对空字符串进行Keccak256 和 SHA3-256结果各不相同: 以太坊在开发的时候SH

    2024年02月11日
    浏览(80)
  • Android 获取应用sha1和sha256

    在 Android 应用开发中,SHA-1(Secure Hash Algorithm 1)值是一种哈希算法,常用于生成应用的数字签名。这个数字签名用于验证应用的身份,并确保应用在发布到设备上时没有被篡改。 以下是生成 Android 应用的 SHA-1 值的步骤: 生成密钥库(KeyStore): 首先,你需要创建一个密钥库

    2024年02月07日
    浏览(58)
  • SHA256加密

    将转换成16进制再加密 将byte转为16进制 以上是加密算法,解密,其实我们可以将密文存到数据库中,当需要判断是否一致的时候,就那加密后的与数据库中存的值做对比,看是否一致

    2024年02月12日
    浏览(76)
  • 【Solidity】Solidity Keccak256 与 SHA3-256

    Solidity Keccak256 与 SHA3-256 区块链的造富神话大家一定都有所耳闻,今天我们讨论以太坊中一项基础技术,主打一个一学就会。 看过以太坊源码或者对区块链有了解的的同学,一定都见过一个哈希算法 Keccak256 。 Keccak256 可以称它是以太坊中第一函数。 那 Keccak256 和 SHA3-256 有什

    2024年02月07日
    浏览(71)
  • 如何获取SHA256证书指纹

    打开dos窗口。cmd  找到keytool命令,jdk的bin目录下。如果已经配置了环境变量则可以直接用  输入keytool查看是否识别命令 输入命令,查看SHA256证书指纹(由于我的文件直接在d盘根目录。我先d: 切到d盘的。) keytool -list -v -keystore lyfjpushdemo.jks 输入密钥则会生成。 (在其它盘可

    2024年02月16日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包