c和java下des(JAVA和c)

本文目錄一覽:

有什麼區別DES實現之間的C和java

可以互解,一般出問題的情況是 DES算法是8位一起處理的。不足8位時 C往往用 \0來填充。java則填充方式不一定。這會導致解密失敗。 還有就是出現中文時,採用什麼編碼。

c語言des加密和3des加密與Java中des加密和3des加密結果不同

java和c#的des是相同。搞出不同是你疏忽了細節,

應該貼出你那相同的明文密文樣本,不同的樣本,java和c#的實現

然後可以幫看是哪裡疏忽了…

C#與JAVA的DES加密解密

本來就是沒有初始化向量這個東西。。。。。可能是C#運行自己提供P盒或者S盒,而java使用ANSI默認的P盒和S盒了。。。你得去看C#的文檔說明。。

加密過程本來就是只需要明文和密鑰,C#估計只是多給一個參數罷了。。。看看文檔去

###################################

什麼叫“初始化向量”?我記得上密碼學的時候DES裡面沒有這個概念~~~

DES算法流程就是固定的。可變的只有P盒和S盒。不知道你說的“初始化向量”是不是S盒

加密和解密只是密鑰擴展的順序顛倒,其他算法完全一樣。

P盒不是保密的,S盒設計方式保密但是可以在網上美國安全局網站上找到設計好的S盒。

如果你說真有什麼“初始化向量”,那可能你用的是前向反饋模式產生序列密碼,不過這樣的話,保持相同的初始向量也是可能的啊。估計是你程序寫的問題。。。而且這樣安全性可能你沒有辦法考證吧。。。

還有。。。你沒有搞錯吧。。。DES是64位的。。。。你用8位能搞什麼。。。

還有。。看樣子你是用C#自帶的工具來加密的。。。DES概念裡面確實沒有什麼“初始化向量”,具體怎麼搞你找密碼學的書看看吧。。。

還有一點。。。。是不是C#裡面可以選擇輪迭次數???默認是16次,還有你要看好是DES還是3DES。

如何實現c和java的des互相加解密

/*

* MD5 算法

*/

public class MD5 {

// 全局數組

private final static String[] strDigits = { “0”, “1”, “2”, “3”, “4”, “5”,

“6”, “7”, “8”, “9”, “a”, “b”, “c”, “d”, “e”, “f” };

public MD5() {

}

// 返回形式為數字跟字符串

private static String byteToArrayString(byte bByte) {

int iRet = bByte;

// System.out.println(“iRet=”+iRet);

if (iRet 0) {

iRet += 256;

}

int iD1 = iRet / 16;

int iD2 = iRet % 16;

return strDigits[iD1] + strDigits[iD2];

}

// 返回形式只為數字

private static String byteToNum(byte bByte) {

int iRet = bByte;

System.out.println(“iRet1=” + iRet);

if (iRet 0) {

iRet += 256;

}

return String.valueOf(iRet);

}

// 轉換字節數組為16進制字串

private static String byteToString(byte[] bByte) {

StringBuffer sBuffer = new StringBuffer();

for (int i = 0; i bByte.length; i++) {

sBuffer.append(byteToArrayString(bByte[i]));

}

return sBuffer.toString();

}

public static String GetMD5Code(String strObj) {

String resultString = null;

try {

resultString = new String(strObj);

MessageDigest md = MessageDigest.getInstance(“MD5”);

// md.digest() 該函數返回值為存放哈希值結果的byte數組

resultString = byteToString(md.digest(strObj.getBytes()));

} catch (NoSuchAlgorithmException ex) {

ex.printStackTrace();

}

return resultString;

}

public static void main(String[] args) {

MD5 getMD5 = new MD5();

System.out.println(getMD5.GetMD5Code(“000000”));

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/181428.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-23 06:40
下一篇 2024-11-23 06:40

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論