0

WIN-PAK は、バックエンド SQL サーバー データベースで「疑わしい」スキーマ変更を行い、クエリが壊れました。nvarchar(35) は varbinary(MAX) に変更されました。私が書いたいくつかのアドオンでは、それを人間が読める文字列に変換できるようにする必要があります。問題は、そもそも彼らがどのようにエンコードを行っているのかわからないことです。

0x004E2B296D0F5707CA3D0EDA6FBC05CB010000007FFBED343A41DB3016798FA2B6FAFE8A4460E1ACB58CBA05BBE34AA0A133C6B8BE0F2F95C153CB658EABF4EFA09931EC を変換する方法

文字列「PILLOW」に戻りますか?

Honeywell WIN-PAK サポートに連絡しましたが、私は認可を受けた販売店ではないため、連絡がありません。私は明らかな convert および cast ステートメントを試しましたが、運がありませんでした。私は通常のフォーラム潜んでいます。これらの変更の知識を持っている人、または変換されたデータを頻繁に扱う人が、6 文字が乱雑なバイナリになる方法を説明できることを願っています。

4

1 に答える 1

1

Microsoft SQL Server の暗号化を使用しているようです

ここに良い概要があります:

https://www.sqlshack.com/an-overview-of-the-column-level-sql-server-encryption/

以下を使用して CardHolder テーブルをデコードできました (一般的な暗号化キーであると仮定します)。

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'WPMasterKey!@#'; 

--CREATE CERTIFICATE WPEnctCertificate WITH  SUBJECT =   'WP Personnel Data Ids'

OPEN SYMMETRIC KEY WPEnctSymmetricKey DECRYPTION BY CERTIFICATE WPEnctCertificate
SELECT TOP (1000) [RecordID]
      ,[AccountID]
      ,[SubAccountID]
      ,[TimeStamp]
      ,[UserID]
      ,[NodeID]
      ,[Deleted]
      ,[UserPriority]
      ,CONVERT(nvarchar, DecryptByKey([FirstName])) as FirstName
      ,CONVERT(nvarchar, DecryptByKey([LastName])) as LastName     
      ,[FirstName]
      ,[LastName]
      ,[Note1]      
  FROM [WIN-PAK PRO].[dbo].[CardHolder] 

WPEnctCertificate は既にシステムにあるはずですが、そうでない場合は、その行のコメントを外して実行してください。

于 2020-08-24T20:20:09.183 に答える