0

matlabで数値をstrに変換する方法はありますか

たとえば、30120 は cat に変わります

c は 03 a は 01 t は 20

これが、RSA暗号化/復号化に関する私の進歩です。プレーンテキストに復号化しようとしています。

% variables

p=vpi('22953686867719691230002707821868552601124472329079')
q=vpi('30762542250301270692051460539586166927291732754961')
e=vpi('555799999999999');
n=(p.*q)
phi=((q-1).*(p-1))

% how to convert plaintext to integer mod 26


abc = 'abcdefghijklmnopqrstuvwxyz';
word = 'acryptographicallystrongrandomnumbergeneratorwhichhasbeenproperlyseededwithadequateentropymustbeusedtogeneratetheprimespandqananalysiscomparingmillionsofpublickeysgatheredfromtheinternetwasrecentlycarriedoutbylenstrahughesaugierboskleinjungandwachteracryptographicallystrongrandomnumbergeneratorwhichhasbeenproperlyseededwithadequateentropymustbeused';  

[temp1, temp2, temp3, temp4, temp5, temp6, temp7,temp8,temp9] = split(word)

[int1,int2,int3,int4,int5,int6,int7,int8,int9] = intsplit(temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,temp9)

[encrypt1, encrypt2, encrypt3, encrypt4, encrypt5, encrypt6, encrypt7, encrypt8, encrypt9] = encrypt_this(int1, int2, int3, int4, int5, int6, int7, int8, int9)

[decrypt1, decryt2, decrypt3, decrypt4, decryt5, decrypt6,decrypt7, decryt8, decrypt9] = decrypt_this(encrypt1, encrypt2, encrypt3, encrypt4, encrypt5, encrypt6, encrypt7, encrypt8, encrypt9)
4

1 に答える 1

1

30120 から 'cat' まで:

num = 30120;
l = ceil(numel(num2str(num))/2); % number of characters
num2 = sprintf('%06i', num);   % num in string form, with leading zero if needed
                               % '030120'
str = '';
for i = 1:l
    str = [str char(96+str2num(num2(2*i-1:2*i)))]; 
end % 96 is the ASCII offset needed to get a=1, c=3 etc like in your example

結果はstr = 'cat'. それがあなたの望みだと思います。

于 2012-10-07T00:11:52.493 に答える