① python位元組,每位元組的異或解密問題,怎麼解決
1.先將int轉為hex字元串,去掉'0x',然後對位數判斷,比如1-->0x01(而不是0x1),22-->0x16;
2.直接將字元串轉為bytearray,比如'0x123456'-->0x12 x34 x56(忽略轉義表示,此處只是討論使用方法);
3.直接將bytearray轉為bytes
defhexPos(num):
val=hex(int(num))[2:]
iflen(val)%2!=0:
val='0'+val
y=bytearray.fromhex(val)
iflen(y)!=4:
x=bytearray(4-len(y))
returnbytes(x+y)
② 請問Python里的 ^ 代表什麼意思
^在算術運算中,表示異或。4 ^ 3表示4異或3,結果為7。
③ Python 中的 ^ 是什麼符號, 有什麼用
在正則表達式中,^匹配你要用來查找的字元串的開頭,^p就是指以p開頭的字元串
作為Python的運算符時,^表示bitwise XOR,在二進制下,0^1 = 1, 0^0=0, 1^1=0
④ 在Python的進制數按位異或問題,怎麼解決
&
按位與
|
按位或
^
按位異或
1.
按位與運算
按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1
,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下:
00001001
(9的二進制補碼)&00000101
(5的二進制補碼)
00000001
(1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a
的高八位清
0
,
保留低八位,
可作
a&255
運算
(
255
的二進制數為0000000011111111)。
main(){
int
a=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
2.
按位或運算
按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下:
00001001|00000101
00001101
(十進制為13)可見9|5=13
main(){
int
a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.
按位異或運算
按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:
00001001^00000101
00001100
(十進制為12)
main(){
int
a=9;
a=a^15;
printf("a=%d\n",a);
}
⑤ python 寫異或加密
from random import seed,randint
str_in=input('請輸入一個字元串:')
you_seed=input('請輸入密碼:')
you_seed=int(you_seed)
#lock
def my_lock(lock_str,lock_seed):
seed(lock_seed)
li_out=[]
for i in lock_str:
li_out.append(chr(ord(i)^randint(0,65535)))
return ''.join(li_out)
my_lock_str=my_lock(str_in,you_seed)
print('原字元串:',str_in)
print('加密字元串:',my_lock_str)
print('還原後字元串:',my_lock(my_lock_str,you_seed))
input()
#python 3.4
⑥ python中n !什麼意思
!= 是一起的,n != "guess" 即 n 不等於 "guess"
⑦ python已知a異或b,求a -b
b=(lg3746789565)/(lg1373219047)=1.047
⑧ python中 *= 是什麼意思
1、兩個值相加,然後返回值給符號左側的變數
舉例如下:
>>> a=1
>>> b=3
>>> a+=b(或者a+=3)
>>> a
4
2、用於字元串連接(變數值帶引號,數據類型為字元串)
>>> a='1'
>>> b='2'
>>> a+=b
>>> a
'12'
8、運算符優先順序
以下所列優先順序順序按照從低到高優先順序的順序;同行為相同優先順序。
Lambda #運算優先順序最低
邏輯運算符: or
邏輯運算符: and
邏輯運算符:not
成員測試: in, not in
同一性測試: is, is not
比較: <,<=,>,>=,!=,==
按位或: |
按位異或: ^
按位與: &
移位: << ,>>
加法與減法: + ,-
乘法、除法與取余: *, / ,%
正負號: +x,-x
具有相同優先順序的運算符將從左至右的方式依次進行,用小括弧()可以改變運算順序。
參考資料來源:網路-Python